<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>minid.ast</title>
  <link href="./css/style.css" rel="stylesheet" type="text/css"/>
  <!-- <link href="./img/icon.png" rel="icon" type="image/png"/> -->
  <script type="text/javascript" src="./js/jquery.js"></script>
  <script type="text/javascript" src="./js/modules.js"></script>
  <script type="text/javascript" src="./js/quicksearch.js"></script>
  <script type="text/javascript" src="./js/navigation.js"></script>
  <!--<script type="text/javascript" src="./js/jquery.treeview.js"></script>-->
  <script type="text/javascript">
    var g_moduleFQN = "minid.ast";
  </script>
  
</head>
<body>
<div id="content">
  <h1><a href="./htmlsrc/minid.ast.html" class="symbol">minid.ast</a></h1>
  
<p class="sec_header">License:</p>Copyright (c) 2008 Jarrett Billingsley
<p class="bl"/>
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the
use of this software.
<p class="bl"/>
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
<p class="bl"/>
    1. The origin of this software must not be misrepresented; you must not
	claim that you wrote the original software. If you use this software in a
	product, an acknowledgment in the product documentation would be
	appreciated but is not required.
<p class="bl"/>
    2. Altered source versions must be plainly marked as such, and must not
	be misrepresented as being the original software.
<p class="bl"/>
    3. This notice may not be removed or altered from any source distribution.
<dl>
<dt class="decl">char[][] <a class="symbol _variable" name="AstTagNames" href="./htmlsrc/minid.ast.html#L31" kind="variable" beg="31" end="150">AstTagNames</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#AstTagNames" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L31">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">char[] <a class="symbol _function" name="genEnumMembers" href="./htmlsrc/minid.ast.html#L152" kind="function" beg="152" end="160">genEnumMembers</a><span class="params">()</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#genEnumMembers" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L152">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">char[][] <a class="symbol _variable" name="NiceAstTagNames" href="./htmlsrc/minid.ast.html#L164" kind="variable" beg="164" end="281">NiceAstTagNames</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#NiceAstTagNames" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L164">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">class <a class="symbol _class" name="AstNode" href="./htmlsrc/minid.ast.html#L286" kind="class" beg="286" end="361">AstNode</a> : IAstNode; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#AstNode" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L286">#</a></dt>
<dd class="ddef">
<div class="summary">The base class for all the Abstract Syntax Tree nodes in the language.</div>
<dl>
<dt class="decl">CompileLoc <a class="symbol _variable" name="AstNode.location" href="./htmlsrc/minid.ast.html#L293" kind="variable" beg="293" end="293">location</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.location" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L293">#</a></dt>
<dd class="ddef">
<div class="summary">The location of the beginning of this node.</div></dd>
<dt class="decl">CompileLoc <a class="symbol _variable" name="AstNode.endLocation" href="./htmlsrc/minid.ast.html#L298" kind="variable" beg="298" end="298">endLocation</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.endLocation" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L298">#</a></dt>
<dd class="ddef">
<div class="summary">The location of the end of this node.</div></dd>
<dt class="decl">AstTag <a class="symbol _variable" name="AstNode.type" href="./htmlsrc/minid.ast.html#L303" kind="variable" beg="303" end="303">type</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.type" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L303">#</a></dt>
<dd class="ddef">
<div class="summary">The tag indicating what kind of node this actually is.</div></dd>
<dt class="decl"><a class="symbol _new" name="AstNode.new" href="./htmlsrc/minid.ast.html#L305" kind="new" beg="305" end="308">new</a><span class="params">(uword <em>size</em>, ICompiler <em>c</em>)</span>; <a title="Permalink to this symbol" href="#AstNode.new" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L305">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _ctor" name="AstNode.this" href="./htmlsrc/minid.ast.html#L320" kind="ctor" beg="320" end="326">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L320">#</a></dt>
<dd class="ddef">
<div class="summary">The base constructor, but since this class is abstract, this can only be
	called from derived classes.</div>
<p class="sec_header">Params:</p>
<table class="params">
<tr><td><em>c</em></td><td>The compiler with which the node will be associated.</td></tr>
<tr><td><em>location</em></td><td>The location of the beginning of this node.</td></tr>
<tr><td><em>endLocation</em></td><td>The location of the end of this node.</td></tr>
<tr><td><em>type</em></td><td>The type of this node.</td></tr></table></dd>
<dt class="decl">char[] <a class="symbol _function" name="AstNode.toString" href="./htmlsrc/minid.ast.html#L331" kind="function" beg="331" end="334">toString</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.toString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L331">#</a></dt>
<dd class="ddef">
<div class="summary">By default, toString() will return the string representation of the node type.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="AstNode.niceString" href="./htmlsrc/minid.ast.html#L339" kind="function" beg="339" end="342">niceString</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.niceString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L339">#</a></dt>
<dd class="ddef">
<div class="summary">Returns a nicer (readable) representation of this kind of node.</div></dd>
<dt class="decl">T <a class="symbol _function" name="AstNode.as" href="./htmlsrc/minid.ast.html#L349" kind="function" beg="349" end="355">as</a><span class="tparams">(T)</span><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AstNode.as" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L349">#</a></dt>
<dd class="ddef">
<div class="summary">Similar to a dynamic cast, except it uses the 'type' field to determine if the
	cast is legal, making it faster.  Returns this casted to the given class type
	if the cast succeeds and null otherwise.</div></dd>
<dt class="decl">void <a class="symbol _function" name="AstNode.cleanup" href="./htmlsrc/minid.ast.html#L357" kind="function" beg="357" end="360">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#AstNode.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L357">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Unknown" href="./htmlsrc/minid.ast.html#L366" kind="class" beg="366" end="373">Unknown</a> : AstNode; <a title="Permalink to this symbol" href="#Unknown" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L366">#</a></dt>
<dd class="ddef">
<div class="summary">Dummy unknown node type.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="Unknown.this" href="./htmlsrc/minid.ast.html#L368" kind="ctor" beg="368" end="372">this</a><span class="params">(ICompiler <em>c</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Unknown.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L368">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Identifier" href="./htmlsrc/minid.ast.html#L379" kind="class" beg="379" end="388">Identifier</a> : AstNode; <a title="Permalink to this symbol" href="#Identifier" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L379">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an identifier.  This isn't the same as an IdentExp, as identifiers can
be used in non-expression contexts (such as names in declarations).</div>
<dl>
<dt class="decl">char[] <a class="symbol _variable" name="Identifier.name" href="./htmlsrc/minid.ast.html#L381" kind="variable" beg="381" end="381">name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Identifier.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L381">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _ctor" name="Identifier.this" href="./htmlsrc/minid.ast.html#L383" kind="ctor" beg="383" end="387">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, char[] <em>name</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Identifier.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L383">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ClassDef" href="./htmlsrc/minid.ast.html#L395" kind="class" beg="395" end="446">ClassDef</a> : AstNode; <a title="Permalink to this symbol" href="#ClassDef" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L395">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents the guts of an class literal.  This node does not directly correspond
to a single grammar element; rather it represents the common attributes of both class
literals and class declarations.</div>
<dl>
<dt class="decl">struct <a class="symbol _struct" name="ClassDef.Field" href="./htmlsrc/minid.ast.html#L400" kind="struct" beg="400" end="413">Field</a>; <a title="Permalink to this symbol" href="#ClassDef.Field" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L400">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a single field in the class.  Remember that methods are fields too.</div>
<dl>
<dt class="decl">char[] <a class="symbol _variable" name="ClassDef.Field.name" href="./htmlsrc/minid.ast.html#L406" kind="variable" beg="406" end="406">name</a>; <a title="Permalink to this symbol" href="#ClassDef.Field.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L406">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the field.  This corresponds to either the name of a data member or
		the name of a method.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ClassDef.Field.initializer" href="./htmlsrc/minid.ast.html#L412" kind="variable" beg="412" end="412">initializer</a>; <a title="Permalink to this symbol" href="#ClassDef.Field.initializer" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L412">#</a></dt>
<dd class="ddef">
<div class="summary">The initializer of the field.  This will never be null.  If a field is declared in
		a class but not given a value, a NullExp will be inserted into this field.</div></dd></dl></dd>
<dt class="decl">Identifier <a class="symbol _variable" name="ClassDef.name" href="./htmlsrc/minid.ast.html#L418" kind="variable" beg="418" end="418">name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDef.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L418">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the class.  This field will never be null.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ClassDef.baseClass" href="./htmlsrc/minid.ast.html#L425" kind="variable" beg="425" end="425">baseClass</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDef.baseClass" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L425">#</a></dt>
<dd class="ddef">
<div class="summary">The base class from which this class derives.  This field will never be null.  If
	no base class is specified, it is given the value of an IdentExp with the identifier
	"Object".</div></dd>
<dt class="decl">Field[] <a class="symbol _variable" name="ClassDef.fields" href="./htmlsrc/minid.ast.html#L430" kind="variable" beg="430" end="430">fields</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDef.fields" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L430">#</a></dt>
<dd class="ddef">
<div class="summary">The fields in this class, in the order they were declared.  See the Field struct above.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ClassDef.this" href="./htmlsrc/minid.ast.html#L434" kind="ctor" beg="434" end="440">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Identifier <em>name</em>, Expression <em>baseClass</em>, Field[] <em>fields</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDef.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L434">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ClassDef.cleanup" href="./htmlsrc/minid.ast.html#L442" kind="function" beg="442" end="445">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ClassDef.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L442">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="FuncDef" href="./htmlsrc/minid.ast.html#L452" kind="class" beg="452" end="553">FuncDef</a> : AstNode; <a title="Permalink to this symbol" href="#FuncDef" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L452">#</a></dt>
<dd class="ddef">
<div class="summary">Similar to ClassDef, this class represents the common attributes of both function literals
and function declarations.</div>
<dl>
<dt class="decl">enum <a class="symbol _enum" name="FuncDef.TypeMask" href="./htmlsrc/minid.ast.html#L454" kind="enum" beg="454" end="475">TypeMask</a>; <a title="Permalink to this symbol" href="#FuncDef.TypeMask" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L454">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Null" href="./htmlsrc/minid.ast.html#L456" kind="enummem" beg="456" end="456">Null</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Null" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L456">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Bool" href="./htmlsrc/minid.ast.html#L457" kind="enummem" beg="457" end="457">Bool</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Bool" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L457">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Int" href="./htmlsrc/minid.ast.html#L458" kind="enummem" beg="458" end="458">Int</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Int" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L458">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Float" href="./htmlsrc/minid.ast.html#L459" kind="enummem" beg="459" end="459">Float</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Float" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L459">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Char" href="./htmlsrc/minid.ast.html#L460" kind="enummem" beg="460" end="460">Char</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Char" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L460">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.String" href="./htmlsrc/minid.ast.html#L462" kind="enummem" beg="462" end="462">String</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.String" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L462">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Table" href="./htmlsrc/minid.ast.html#L463" kind="enummem" beg="463" end="463">Table</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Table" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L463">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Array" href="./htmlsrc/minid.ast.html#L464" kind="enummem" beg="464" end="464">Array</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Array" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L464">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Function" href="./htmlsrc/minid.ast.html#L465" kind="enummem" beg="465" end="465">Function</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Function" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L465">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Class" href="./htmlsrc/minid.ast.html#L466" kind="enummem" beg="466" end="466">Class</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Class" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L466">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Instance" href="./htmlsrc/minid.ast.html#L467" kind="enummem" beg="467" end="467">Instance</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Instance" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L467">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Namespace" href="./htmlsrc/minid.ast.html#L468" kind="enummem" beg="468" end="468">Namespace</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Namespace" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L468">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Thread" href="./htmlsrc/minid.ast.html#L469" kind="enummem" beg="469" end="469">Thread</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Thread" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L469">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.NativeObj" href="./htmlsrc/minid.ast.html#L470" kind="enummem" beg="470" end="470">NativeObj</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.NativeObj" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L470">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.WeakRef" href="./htmlsrc/minid.ast.html#L471" kind="enummem" beg="471" end="471">WeakRef</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.WeakRef" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L471">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.NotNull" href="./htmlsrc/minid.ast.html#L473" kind="enummem" beg="473" end="473">NotNull</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.NotNull" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L473">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _enummem" name="FuncDef.TypeMask.Any" href="./htmlsrc/minid.ast.html#L474" kind="enummem" beg="474" end="474">Any</a> <a title="Permalink to this symbol" href="#FuncDef.TypeMask.Any" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L474">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">struct <a class="symbol _struct" name="FuncDef.Param" href="./htmlsrc/minid.ast.html#L480" kind="struct" beg="480" end="506">Param</a>; <a title="Permalink to this symbol" href="#FuncDef.Param" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L480">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a parameter to the function.</div>
<dl>
<dt class="decl">Identifier <a class="symbol _variable" name="FuncDef.Param.name" href="./htmlsrc/minid.ast.html#L485" kind="variable" beg="485" end="485">name</a>; <a title="Permalink to this symbol" href="#FuncDef.Param.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L485">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the parameter.</div></dd>
<dt class="decl">ushort <a class="symbol _variable" name="FuncDef.Param.typeMask" href="./htmlsrc/minid.ast.html#L492" kind="variable" beg="492" end="492">typeMask</a>; <a title="Permalink to this symbol" href="#FuncDef.Param.typeMask" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L492">#</a></dt>
<dd class="ddef">
<div class="summary">The type mask of the parameter, that is, what basic types can be passed to it.
		Defaults to TypeMask.Any, which allows any type to be passed.  This should not be
		set to 0; the codegen does not check for this so it's up to you.</div></dd>
<dt class="decl">Expression[] <a class="symbol _variable" name="FuncDef.Param.classTypes" href="./htmlsrc/minid.ast.html#L499" kind="variable" beg="499" end="499">classTypes</a>; <a title="Permalink to this symbol" href="#FuncDef.Param.classTypes" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L499">#</a></dt>
<dd class="ddef">
<div class="summary">If typeMask allows instances, this can be a list of expressions which should evaluate
		at runtime to class types that this parameter can accept.  This is an optional
		list.  If typeMask does not allow instances, this should be empty.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="FuncDef.Param.defValue" href="./htmlsrc/minid.ast.html#L505" kind="variable" beg="505" end="505">defValue</a>; <a title="Permalink to this symbol" href="#FuncDef.Param.defValue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L505">#</a></dt>
<dd class="ddef">
<div class="summary">The default value for the parameter.  This can be null, in which case it will have
		no default value.</div></dd></dl></dd>
<dt class="decl">Identifier <a class="symbol _variable" name="FuncDef.name" href="./htmlsrc/minid.ast.html#L513" kind="variable" beg="513" end="513">name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDef.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L513">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the function.  This will never be null.  In the case of function literals
	without names, this will be filled with an auto-generated name based off the location of
	where the literal occurred.</div></dd>
<dt class="decl">Param[] <a class="symbol _variable" name="FuncDef.params" href="./htmlsrc/minid.ast.html#L519" kind="variable" beg="519" end="519">params</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDef.params" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L519">#</a></dt>
<dd class="ddef">
<div class="summary">The list of parameters to the function.  See the Param struct above.  This will always be
	at least one element long, and element 0 will always be the 'this' parameter.</div></dd>
<dt class="decl">bool <a class="symbol _variable" name="FuncDef.isVararg" href="./htmlsrc/minid.ast.html#L524" kind="variable" beg="524" end="524">isVararg</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDef.isVararg" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L524">#</a></dt>
<dd class="ddef">
<div class="summary">Indicates whether or not this function is variadic.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="FuncDef.code" href="./htmlsrc/minid.ast.html#L530" kind="variable" beg="530" end="530">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDef.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L530">#</a></dt>
<dd class="ddef">
<div class="summary">The body of the function.  In the case of lambda functions (i.e. "function(x) = x * x"), this
	is a ReturnStmt with one expression, the expression that is the lambda's body.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="FuncDef.this" href="./htmlsrc/minid.ast.html#L534" kind="ctor" beg="534" end="544">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Identifier <em>name</em>, Param[] <em>params</em>, bool <em>isVararg</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDef.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L534">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="FuncDef.cleanup" href="./htmlsrc/minid.ast.html#L546" kind="function" beg="546" end="552">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#FuncDef.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L546">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="NamespaceDef" href="./htmlsrc/minid.ast.html#L559" kind="class" beg="559" end="609">NamespaceDef</a> : AstNode; <a title="Permalink to this symbol" href="#NamespaceDef" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L559">#</a></dt>
<dd class="ddef">
<div class="summary">Like the ClassDef and FuncDef classes, this represents the common attributes of both
namespace literals and declarations.</div>
<dl>
<dt class="decl">struct <a class="symbol _struct" name="NamespaceDef.Field" href="./htmlsrc/minid.ast.html#L564" kind="struct" beg="564" end="577">Field</a>; <a title="Permalink to this symbol" href="#NamespaceDef.Field" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L564">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a single field in the namespace.  Remember that functions are fields too.</div>
<dl>
<dt class="decl">char[] <a class="symbol _variable" name="NamespaceDef.Field.name" href="./htmlsrc/minid.ast.html#L570" kind="variable" beg="570" end="570">name</a>; <a title="Permalink to this symbol" href="#NamespaceDef.Field.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L570">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the field.  This corresponds to either the name of a data member or
		the name of a function.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="NamespaceDef.Field.initializer" href="./htmlsrc/minid.ast.html#L576" kind="variable" beg="576" end="576">initializer</a>; <a title="Permalink to this symbol" href="#NamespaceDef.Field.initializer" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L576">#</a></dt>
<dd class="ddef">
<div class="summary">The initializer of the field.  This will never be null.  If a field is declared in
		a namespace but not given a value, a NullExp will be inserted into this field.</div></dd></dl></dd>
<dt class="decl">Identifier <a class="symbol _variable" name="NamespaceDef.name" href="./htmlsrc/minid.ast.html#L582" kind="variable" beg="582" end="582">name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDef.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L582">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the namespace.  This field will never be null.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="NamespaceDef.parent" href="./htmlsrc/minid.ast.html#L588" kind="variable" beg="588" end="588">parent</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDef.parent" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L588">#</a></dt>
<dd class="ddef">
<div class="summary">The namespace which will become the parent of this namespace.  This field can be null,
	in which case the namespace's parent will be set to the environment of the current function.</div></dd>
<dt class="decl">Field[] <a class="symbol _variable" name="NamespaceDef.fields" href="./htmlsrc/minid.ast.html#L593" kind="variable" beg="593" end="593">fields</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDef.fields" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L593">#</a></dt>
<dd class="ddef">
<div class="summary">The fields in this namespace, in an arbitrary order.  See the Field struct above.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="NamespaceDef.this" href="./htmlsrc/minid.ast.html#L597" kind="ctor" beg="597" end="603">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Identifier <em>name</em>, Expression <em>parent</em>, Field[] <em>fields</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDef.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L597">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="NamespaceDef.cleanup" href="./htmlsrc/minid.ast.html#L605" kind="function" beg="605" end="608">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDef.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L605">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Module" href="./htmlsrc/minid.ast.html#L614" kind="class" beg="614" end="646">Module</a> : AstNode; <a title="Permalink to this symbol" href="#Module" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L614">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a MiniD module.  This node forms the root of an AST when a module is compiled.</div>
<dl>
<dt class="decl">char[][] <a class="symbol _variable" name="Module.names" href="./htmlsrc/minid.ast.html#L620" kind="variable" beg="620" end="620">names</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Module.names" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L620">#</a></dt>
<dd class="ddef">
<div class="summary">The name of this module.  This is an array of strings, each element of which is one
	piece of a dotted name.  This array will always be at least one element long.</div></dd>
<dt class="decl">Statement[] <a class="symbol _variable" name="Module.statements" href="./htmlsrc/minid.ast.html#L625" kind="variable" beg="625" end="625">statements</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Module.statements" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L625">#</a></dt>
<dd class="ddef">
<div class="summary">A list of 0 or more statements which make up the body of the module.</div></dd>
<dt class="decl">Decorator <a class="symbol _variable" name="Module.decorator" href="./htmlsrc/minid.ast.html#L629" kind="variable" beg="629" end="629">decorator</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Module.decorator" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L629">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="Module.this" href="./htmlsrc/minid.ast.html#L633" kind="ctor" beg="633" end="639">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, char[][] <em>names</em>, Statement[] <em>statements</em>, Decorator <em>decorator</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Module.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L633">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="Module.cleanup" href="./htmlsrc/minid.ast.html#L641" kind="function" beg="641" end="645">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#Module.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L641">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Statement" href="./htmlsrc/minid.ast.html#L651" kind="class" beg="651" end="657">Statement</a> : AstNode; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#Statement" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L651">#</a></dt>
<dd class="ddef">
<div class="summary">The base class for all statements.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="Statement.this" href="./htmlsrc/minid.ast.html#L653" kind="ctor" beg="653" end="656">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Statement.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L653">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">enum <a class="symbol _enum" name="Protection" href="./htmlsrc/minid.ast.html#L663" kind="enum" beg="663" end="680">Protection</a>; <a title="Permalink to this symbol" href="#Protection" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L663">#</a></dt>
<dd class="ddef">
<div class="summary">Defines the types of protection possible for class, function, namespace, and variable
declarations.</div>
<dl>
<dt class="decl"><a class="symbol _enummem" name="Protection.Default" href="./htmlsrc/minid.ast.html#L669" kind="enummem" beg="669" end="669">Default</a> <a title="Permalink to this symbol" href="#Protection.Default" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L669">#</a></dt>
<dd class="ddef">
<div class="summary">This indicates "default" protection, which means global at module-level scope and local
	everywhere else.</div></dd>
<dt class="decl"><a class="symbol _enummem" name="Protection.Local" href="./htmlsrc/minid.ast.html#L674" kind="enummem" beg="674" end="674">Local</a> <a title="Permalink to this symbol" href="#Protection.Local" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L674">#</a></dt>
<dd class="ddef">
<div class="summary">This forces local protection.</div></dd>
<dt class="decl"><a class="symbol _enummem" name="Protection.Global" href="./htmlsrc/minid.ast.html#L679" kind="enummem" beg="679" end="679">Global</a> <a title="Permalink to this symbol" href="#Protection.Global" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L679">#</a></dt>
<dd class="ddef">
<div class="summary">This forces global protection.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="VarDecl" href="./htmlsrc/minid.ast.html#L685" kind="class" beg="685" end="718">VarDecl</a> : Statement; <a title="Permalink to this symbol" href="#VarDecl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L685">#</a></dt>
<dd class="ddef">
<div class="summary">Represents local and global variable declarations.</div>
<dl>
<dt class="decl">Protection <a class="symbol _variable" name="VarDecl.protection" href="./htmlsrc/minid.ast.html#L690" kind="variable" beg="690" end="690">protection</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VarDecl.protection" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L690">#</a></dt>
<dd class="ddef">
<div class="summary">What protection level this declaration uses.</div></dd>
<dt class="decl">Identifier[] <a class="symbol _variable" name="VarDecl.names" href="./htmlsrc/minid.ast.html#L695" kind="variable" beg="695" end="695">names</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VarDecl.names" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L695">#</a></dt>
<dd class="ddef">
<div class="summary">The list of names to be declared.  This will always have at least one name.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="VarDecl.initializer" href="./htmlsrc/minid.ast.html#L702" kind="variable" beg="702" end="702">initializer</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VarDecl.initializer" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L702">#</a></dt>
<dd class="ddef">
<div class="summary">The initializer for the variables.  This can be null, in which case the variables
	will be initialized to null.  If this is non-null and there is more than one name,
	this must be a multi-return expression, such as a function call, vararg etc.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="VarDecl.this" href="./htmlsrc/minid.ast.html#L706" kind="ctor" beg="706" end="712">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Protection <em>protection</em>, Identifier[] <em>names</em>, Expression <em>initializer</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VarDecl.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L706">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="VarDecl.cleanup" href="./htmlsrc/minid.ast.html#L714" kind="function" beg="714" end="717">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#VarDecl.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L714">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Decorator" href="./htmlsrc/minid.ast.html#L722" kind="class" beg="722" end="755">Decorator</a> : AstNode; <a title="Permalink to this symbol" href="#Decorator" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L722">#</a></dt>
<dd class="ddef">
<div class="summary"></div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="Decorator.func" href="./htmlsrc/minid.ast.html#L726" kind="variable" beg="726" end="726">func</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Decorator.func" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L726">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="Decorator.context" href="./htmlsrc/minid.ast.html#L730" kind="variable" beg="730" end="730">context</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Decorator.context" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L730">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">Expression[] <a class="symbol _variable" name="Decorator.args" href="./htmlsrc/minid.ast.html#L734" kind="variable" beg="734" end="734">args</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Decorator.args" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L734">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">Decorator <a class="symbol _variable" name="Decorator.nextDec" href="./htmlsrc/minid.ast.html#L738" kind="variable" beg="738" end="738">nextDec</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Decorator.nextDec" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L738">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="Decorator.this" href="./htmlsrc/minid.ast.html#L742" kind="ctor" beg="742" end="749">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>func</em>, Expression <em>context</em>, Expression[] <em>args</em>, Decorator <em>nextDec</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Decorator.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L742">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="Decorator.cleanup" href="./htmlsrc/minid.ast.html#L751" kind="function" beg="751" end="754">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#Decorator.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L751">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="FuncDecl" href="./htmlsrc/minid.ast.html#L762" kind="class" beg="762" end="788">FuncDecl</a> : Statement; <a title="Permalink to this symbol" href="#FuncDecl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L762">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a function declaration.  Note that there are some places in the
grammar which look like function declarations (like inside classes and namespaces) but
which actually are just syntactic sugar.  This is for actual declarations.</div>
<dl>
<dt class="decl">Protection <a class="symbol _variable" name="FuncDecl.protection" href="./htmlsrc/minid.ast.html#L767" kind="variable" beg="767" end="767">protection</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDecl.protection" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L767">#</a></dt>
<dd class="ddef">
<div class="summary">What protection level this declaration uses.</div></dd>
<dt class="decl">FuncDef <a class="symbol _variable" name="FuncDecl.def" href="./htmlsrc/minid.ast.html#L772" kind="variable" beg="772" end="772">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDecl.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L772">#</a></dt>
<dd class="ddef">
<div class="summary">The "guts" of the function declaration.</div></dd>
<dt class="decl">Decorator <a class="symbol _variable" name="FuncDecl.decorator" href="./htmlsrc/minid.ast.html#L776" kind="variable" beg="776" end="776">decorator</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDecl.decorator" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L776">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="FuncDecl.this" href="./htmlsrc/minid.ast.html#L781" kind="ctor" beg="781" end="787">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Protection <em>protection</em>, FuncDef <em>def</em>, Decorator <em>decorator</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncDecl.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L781">#</a></dt>
<dd class="ddef">
<div class="summary">The protection parameter can be any kind of protection.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ClassDecl" href="./htmlsrc/minid.ast.html#L793" kind="class" beg="793" end="819">ClassDecl</a> : Statement; <a title="Permalink to this symbol" href="#ClassDecl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L793">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a class declaration.</div>
<dl>
<dt class="decl">Protection <a class="symbol _variable" name="ClassDecl.protection" href="./htmlsrc/minid.ast.html#L798" kind="variable" beg="798" end="798">protection</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDecl.protection" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L798">#</a></dt>
<dd class="ddef">
<div class="summary">What protection level this declaration uses.</div></dd>
<dt class="decl">ClassDef <a class="symbol _variable" name="ClassDecl.def" href="./htmlsrc/minid.ast.html#L803" kind="variable" beg="803" end="803">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDecl.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L803">#</a></dt>
<dd class="ddef">
<div class="summary">The actual "guts" of the class.</div></dd>
<dt class="decl">Decorator <a class="symbol _variable" name="ClassDecl.decorator" href="./htmlsrc/minid.ast.html#L807" kind="variable" beg="807" end="807">decorator</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDecl.decorator" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L807">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="ClassDecl.this" href="./htmlsrc/minid.ast.html#L812" kind="ctor" beg="812" end="818">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Protection <em>protection</em>, ClassDef <em>def</em>, Decorator <em>decorator</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassDecl.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L812">#</a></dt>
<dd class="ddef">
<div class="summary">The protection parameter can be any kind of protection.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="NamespaceDecl" href="./htmlsrc/minid.ast.html#L824" kind="class" beg="824" end="850">NamespaceDecl</a> : Statement; <a title="Permalink to this symbol" href="#NamespaceDecl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L824">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a namespace declaration.</div>
<dl>
<dt class="decl">Protection <a class="symbol _variable" name="NamespaceDecl.protection" href="./htmlsrc/minid.ast.html#L829" kind="variable" beg="829" end="829">protection</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDecl.protection" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L829">#</a></dt>
<dd class="ddef">
<div class="summary">What protection level this declaration uses.</div></dd>
<dt class="decl">NamespaceDef <a class="symbol _variable" name="NamespaceDecl.def" href="./htmlsrc/minid.ast.html#L834" kind="variable" beg="834" end="834">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDecl.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L834">#</a></dt>
<dd class="ddef">
<div class="summary">The "guts" of the namespace.</div></dd>
<dt class="decl">Decorator <a class="symbol _variable" name="NamespaceDecl.decorator" href="./htmlsrc/minid.ast.html#L838" kind="variable" beg="838" end="838">decorator</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDecl.decorator" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L838">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="NamespaceDecl.this" href="./htmlsrc/minid.ast.html#L843" kind="ctor" beg="843" end="849">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Protection <em>protection</em>, NamespaceDef <em>def</em>, Decorator <em>decorator</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceDecl.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L843">#</a></dt>
<dd class="ddef">
<div class="summary">The protection parameter can be any level of protection.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AssertStmt" href="./htmlsrc/minid.ast.html#L855" kind="class" beg="855" end="877">AssertStmt</a> : Statement; <a title="Permalink to this symbol" href="#AssertStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L855">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an assertion statement.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="AssertStmt.cond" href="./htmlsrc/minid.ast.html#L860" kind="variable" beg="860" end="860">cond</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AssertStmt.cond" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L860">#</a></dt>
<dd class="ddef">
<div class="summary">A required expression that is the condition checked by the assertion.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="AssertStmt.msg" href="./htmlsrc/minid.ast.html#L867" kind="variable" beg="867" end="867">msg</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AssertStmt.msg" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L867">#</a></dt>
<dd class="ddef">
<div class="summary">An optional message that will be used if the assertion fails.  This member
	can be null, in which case a message will be generated for the assertion
	based on its location.  If it's not null, it must evaluate to a string.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="AssertStmt.this" href="./htmlsrc/minid.ast.html#L871" kind="ctor" beg="871" end="876">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>cond</em>, Expression <em>msg</em> = null)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AssertStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L871">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ImportStmt" href="./htmlsrc/minid.ast.html#L882" kind="class" beg="882" end="927">ImportStmt</a> : Statement; <a title="Permalink to this symbol" href="#ImportStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L882">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an import statement.</div>
<dl>
<dt class="decl">Identifier <a class="symbol _variable" name="ImportStmt.importName" href="./htmlsrc/minid.ast.html#L888" kind="variable" beg="888" end="888">importName</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ImportStmt.importName" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L888">#</a></dt>
<dd class="ddef">
<div class="summary">An optional renaming of the import.  This member can be null, in which case no renaming
	is done.  In the code "import x = y;", this member corresponds to "x".</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ImportStmt.expr" href="./htmlsrc/minid.ast.html#L896" kind="variable" beg="896" end="896">expr</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ImportStmt.expr" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L896">#</a></dt>
<dd class="ddef">
<div class="summary">The expression which evaluates to a string containing the name of the module to import.
	The statement "import a.b.c" is actually syntactic sugar for "import("a.b.c")", so expr
	will be a StringExp in this case.  This expression is checked (if it's constant) to ensure
	that it's a string when constant folding occurs.</div></dd>
<dt class="decl">Identifier[] <a class="symbol _variable" name="ImportStmt.symbols" href="./htmlsrc/minid.ast.html#L902" kind="variable" beg="902" end="902">symbols</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ImportStmt.symbols" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L902">#</a></dt>
<dd class="ddef">
<div class="summary">An optional list of symbols to import from the module.  In the code "import x : a, b, c",
	this corresponds to "a, b, c".</div></dd>
<dt class="decl">Identifier[] <a class="symbol _variable" name="ImportStmt.symbolNames" href="./htmlsrc/minid.ast.html#L909" kind="variable" beg="909" end="909">symbolNames</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ImportStmt.symbolNames" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L909">#</a></dt>
<dd class="ddef">
<div class="summary">A parallel array to the symbols array.  This holds the names of the symbols as they should
	be called in this module.  The code "import x : a, b" is sugar for "import x : a = a, b = b".
	In the code "import x : y = a, z = b", this array corresponds to "y, z".</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ImportStmt.this" href="./htmlsrc/minid.ast.html#L913" kind="ctor" beg="913" end="920">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Identifier <em>importName</em>, Expression <em>expr</em>, Identifier[] <em>symbols</em>, Identifier[] <em>symbolNames</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ImportStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L913">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ImportStmt.cleanup" href="./htmlsrc/minid.ast.html#L922" kind="function" beg="922" end="926">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ImportStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L922">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="BlockStmt" href="./htmlsrc/minid.ast.html#L932" kind="class" beg="932" end="951">BlockStmt</a> : Statement; <a title="Permalink to this symbol" href="#BlockStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L932">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a block statement (i.e. one surrounded by curly braces).</div>
<dl>
<dt class="decl">Statement[] <a class="symbol _variable" name="BlockStmt.statements" href="./htmlsrc/minid.ast.html#L937" kind="variable" beg="937" end="937">statements</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BlockStmt.statements" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L937">#</a></dt>
<dd class="ddef">
<div class="summary">The list of statements contained in the braces.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="BlockStmt.this" href="./htmlsrc/minid.ast.html#L941" kind="ctor" beg="941" end="945">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Statement[] <em>statements</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BlockStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L941">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="BlockStmt.cleanup" href="./htmlsrc/minid.ast.html#L947" kind="function" beg="947" end="950">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#BlockStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L947">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ScopeStmt" href="./htmlsrc/minid.ast.html#L959" kind="class" beg="959" end="974">ScopeStmt</a> : Statement; <a title="Permalink to this symbol" href="#ScopeStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L959">#</a></dt>
<dd class="ddef">
<div class="summary">A node which doesn't correspond to a grammar element.  This indicates a new nested scope.
An example of where this would be used is in an anonymous scope with some code in it.  All it
does is affects the codegen of the contained statement by beginning a new scope before it
and ending the scope after it.</div>
<dl>
<dt class="decl">Statement <a class="symbol _variable" name="ScopeStmt.statement" href="./htmlsrc/minid.ast.html#L965" kind="variable" beg="965" end="965">statement</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ScopeStmt.statement" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L965">#</a></dt>
<dd class="ddef">
<div class="summary">The statement contained within this scope.  Typically a block statement, but can
	be anything.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ScopeStmt.this" href="./htmlsrc/minid.ast.html#L969" kind="ctor" beg="969" end="973">this</a><span class="params">(ICompiler <em>c</em>, Statement <em>statement</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ScopeStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L969">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ExpressionStmt" href="./htmlsrc/minid.ast.html#L980" kind="class" beg="980" end="1008">ExpressionStmt</a> : Statement; <a title="Permalink to this symbol" href="#ExpressionStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L980">#</a></dt>
<dd class="ddef">
<div class="summary">A statement that holds a side-effecting expression to be evaluated as a statement,
such as a function call, assignment etc.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="ExpressionStmt.expr" href="./htmlsrc/minid.ast.html#L991" kind="variable" beg="991" end="991">expr</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExpressionStmt.expr" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L991">#</a></dt>
<dd class="ddef">
<div class="summary">The expression to be evaluated for this statement.  This must be a side-effecting
	expression, including function calls, yields, and assignments.  Conditional (?:)
	expressions and logical or and logical and (|| and &amp;&amp;) expressions are also allowed,
	providing at least one component is side-effecting.</div>
This class does <b>not</b> check that this expression is side-effecting; that is up to
	you.</dd>
<dt class="decl"><a class="symbol _ctor" name="ExpressionStmt.this" href="./htmlsrc/minid.ast.html#L995" kind="ctor" beg="995" end="999">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>expr</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExpressionStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L995">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="ExpressionStmt.this:2" href="./htmlsrc/minid.ast.html#L1003" kind="ctor" beg="1003" end="1007">this</a><span class="params">(ICompiler <em>c</em>, Expression <em>expr</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ExpressionStmt.this:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1003">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="IfStmt" href="./htmlsrc/minid.ast.html#L1013" kind="class" beg="1013" end="1049">IfStmt</a> : Statement; <a title="Permalink to this symbol" href="#IfStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1013">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an if statement.</div>
<dl>
<dt class="decl">IdentExp <a class="symbol _variable" name="IfStmt.condVar" href="./htmlsrc/minid.ast.html#L1020" kind="variable" beg="1020" end="1020">condVar</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfStmt.condVar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1020">#</a></dt>
<dd class="ddef">
<div class="summary">An optional variable to declare inside the statement's condition which will take on
	the value of the condition.  In the code "if(local x = y &lt; z){}", this corresponds
	to "x".  This member may be null, in which case there is no variable there.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="IfStmt.condition" href="./htmlsrc/minid.ast.html#L1025" kind="variable" beg="1025" end="1025">condition</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfStmt.condition" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1025">#</a></dt>
<dd class="ddef">
<div class="summary">The condition to test.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="IfStmt.ifBody" href="./htmlsrc/minid.ast.html#L1030" kind="variable" beg="1030" end="1030">ifBody</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfStmt.ifBody" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1030">#</a></dt>
<dd class="ddef">
<div class="summary">The code to execute if the condition evaluates to true.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="IfStmt.elseBody" href="./htmlsrc/minid.ast.html#L1036" kind="variable" beg="1036" end="1036">elseBody</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfStmt.elseBody" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1036">#</a></dt>
<dd class="ddef">
<div class="summary">If there is an else clause, this is the code to execute if the condition evaluates to
	false.  If there is no else clause, this member is null.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="IfStmt.this" href="./htmlsrc/minid.ast.html#L1040" kind="ctor" beg="1040" end="1048">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, IdentExp <em>condVar</em>, Expression <em>condition</em>, Statement <em>ifBody</em>, Statement <em>elseBody</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1040">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="WhileStmt" href="./htmlsrc/minid.ast.html#L1054" kind="class" beg="1054" end="1083">WhileStmt</a> : Statement; <a title="Permalink to this symbol" href="#WhileStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1054">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a while loop.</div>
<dl>
<dt class="decl">IdentExp <a class="symbol _variable" name="WhileStmt.condVar" href="./htmlsrc/minid.ast.html#L1061" kind="variable" beg="1061" end="1061">condVar</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#WhileStmt.condVar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1061">#</a></dt>
<dd class="ddef">
<div class="summary">An optional variable to declare inside the statement's condition which will take on
	the value of the condition.  In the code "while(local x = y &lt; z){}", this corresponds
	to "x".  This member may be null, in which case there is no variable there.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="WhileStmt.condition" href="./htmlsrc/minid.ast.html#L1066" kind="variable" beg="1066" end="1066">condition</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#WhileStmt.condition" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1066">#</a></dt>
<dd class="ddef">
<div class="summary">The condition to test.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="WhileStmt.code" href="./htmlsrc/minid.ast.html#L1071" kind="variable" beg="1071" end="1071">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#WhileStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1071">#</a></dt>
<dd class="ddef">
<div class="summary">The code inside the loop.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="WhileStmt.this" href="./htmlsrc/minid.ast.html#L1075" kind="ctor" beg="1075" end="1082">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, IdentExp <em>condVar</em>, Expression <em>condition</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#WhileStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1075">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="DoWhileStmt" href="./htmlsrc/minid.ast.html#L1088" kind="class" beg="1088" end="1109">DoWhileStmt</a> : Statement; <a title="Permalink to this symbol" href="#DoWhileStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1088">#</a></dt>
<dd class="ddef">
<div class="summary">This node corresponds to a do-while loop.</div>
<dl>
<dt class="decl">Statement <a class="symbol _variable" name="DoWhileStmt.code" href="./htmlsrc/minid.ast.html#L1093" kind="variable" beg="1093" end="1093">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DoWhileStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1093">#</a></dt>
<dd class="ddef">
<div class="summary">The code inside the loop.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="DoWhileStmt.condition" href="./htmlsrc/minid.ast.html#L1098" kind="variable" beg="1098" end="1098">condition</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DoWhileStmt.condition" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1098">#</a></dt>
<dd class="ddef">
<div class="summary">The condition to test at the end of the loop.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="DoWhileStmt.this" href="./htmlsrc/minid.ast.html#L1102" kind="ctor" beg="1102" end="1108">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Statement <em>code</em>, Expression <em>condition</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DoWhileStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1102">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ForStmt" href="./htmlsrc/minid.ast.html#L1114" kind="class" beg="1114" end="1183">ForStmt</a> : Statement; <a title="Permalink to this symbol" href="#ForStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1114">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a C-style for loop.</div>
<dl>
<dt class="decl">struct <a class="symbol _struct" name="ForStmt.Init" href="./htmlsrc/minid.ast.html#L1120" kind="struct" beg="1120" end="1141">Init</a>; <a title="Permalink to this symbol" href="#ForStmt.Init" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1120">#</a></dt>
<dd class="ddef">
<div class="summary">There are two types of initializers possible in the first clause of the for loop header:
	variable declarations and expression statements.  This struct holds one or the other.</div>
<dl>
<dt class="decl">bool <a class="symbol _variable" name="ForStmt.Init.isDecl" href="./htmlsrc/minid.ast.html#L1125" kind="variable" beg="1125" end="1125">isDecl</a>; <a title="Permalink to this symbol" href="#ForStmt.Init.isDecl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1125">#</a></dt>
<dd class="ddef">
<div class="summary">If true, the 'decl' member should be used; else, the 'init' member should be used.</div></dd>
<dt class="decl"><a class="symbol _union" name="ForStmt.Init.union" href="./htmlsrc/minid.ast.html#L1127" kind="union" beg="1127" end="1140">union</a>; <a title="Permalink to this symbol" href="#ForStmt.Init.union" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1127">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">Statement <a class="symbol _variable" name="ForStmt.Init.union.stmt" href="./htmlsrc/minid.ast.html#L1133" kind="variable" beg="1133" end="1133">stmt</a>; <a title="Permalink to this symbol" href="#ForStmt.Init.union.stmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1133">#</a></dt>
<dd class="ddef">
<div class="summary">If isDecl is false, this holds an expression statement to be evaluated at the beginning
			of the loop.</div></dd>
<dt class="decl">VarDecl <a class="symbol _variable" name="ForStmt.Init.union.decl" href="./htmlsrc/minid.ast.html#L1139" kind="variable" beg="1139" end="1139">decl</a>; <a title="Permalink to this symbol" href="#ForStmt.Init.union.decl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1139">#</a></dt>
<dd class="ddef">
<div class="summary">If isDecl is true, this holds a variable declaration to be performed at the
			beginning of the loop.</div></dd></dl></dd></dl></dd>
<dt class="decl">Init[] <a class="symbol _variable" name="ForStmt.init" href="./htmlsrc/minid.ast.html#L1146" kind="variable" beg="1146" end="1146">init</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForStmt.init" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1146">#</a></dt>
<dd class="ddef">
<div class="summary">A list of 0 or more initializers (the first clause of the foreach header).</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ForStmt.condition" href="./htmlsrc/minid.ast.html#L1153" kind="variable" beg="1153" end="1153">condition</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForStmt.condition" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1153">#</a></dt>
<dd class="ddef">
<div class="summary">The condition to test at the beginning of each iteration of the loop.  This can be
	null, in which case the only way to get out of the loop is to break, return, or
	throw an exception.</div></dd>
<dt class="decl">Statement[] <a class="symbol _variable" name="ForStmt.increment" href="./htmlsrc/minid.ast.html#L1159" kind="variable" beg="1159" end="1159">increment</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForStmt.increment" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1159">#</a></dt>
<dd class="ddef">
<div class="summary">A list of 0 or more increment expression statements to be evaluated at the end of
	each iteration of the loop.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="ForStmt.code" href="./htmlsrc/minid.ast.html#L1164" kind="variable" beg="1164" end="1164">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1164">#</a></dt>
<dd class="ddef">
<div class="summary">The code inside the loop.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ForStmt.this" href="./htmlsrc/minid.ast.html#L1168" kind="ctor" beg="1168" end="1176">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Init[] <em>init</em>, Expression <em>cond</em>, Statement[] <em>inc</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1168">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ForStmt.cleanup" href="./htmlsrc/minid.ast.html#L1178" kind="function" beg="1178" end="1182">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ForStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1178">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ForNumStmt" href="./htmlsrc/minid.ast.html#L1188" kind="class" beg="1188" end="1231">ForNumStmt</a> : Statement; <a title="Permalink to this symbol" href="#ForNumStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1188">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a numeric for loop, i.e. "for(i: 0 .. 10){}".</div>
<dl>
<dt class="decl">Identifier <a class="symbol _variable" name="ForNumStmt.index" href="./htmlsrc/minid.ast.html#L1193" kind="variable" beg="1193" end="1193">index</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumStmt.index" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1193">#</a></dt>
<dd class="ddef">
<div class="summary">The name of the index variable.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ForNumStmt.lo" href="./htmlsrc/minid.ast.html#L1199" kind="variable" beg="1199" end="1199">lo</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumStmt.lo" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1199">#</a></dt>
<dd class="ddef">
<div class="summary">The lower bound of the loop (the value before the "..").  If constant, it must be an
	int.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ForNumStmt.hi" href="./htmlsrc/minid.ast.html#L1205" kind="variable" beg="1205" end="1205">hi</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumStmt.hi" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1205">#</a></dt>
<dd class="ddef">
<div class="summary">The upper bound of the loop (the value after the "..").  If constant, it must be an
	int.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="ForNumStmt.step" href="./htmlsrc/minid.ast.html#L1212" kind="variable" beg="1212" end="1212">step</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumStmt.step" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1212">#</a></dt>
<dd class="ddef">
<div class="summary">The step value of the loop.  If specified, this is the value after the comma after the
	upper bound.  If not specified, this is given an IntExp of value 1.  This member is
	never null.  If constant, it must be an int.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="ForNumStmt.code" href="./htmlsrc/minid.ast.html#L1217" kind="variable" beg="1217" end="1217">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1217">#</a></dt>
<dd class="ddef">
<div class="summary">The code inside the loop.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ForNumStmt.this" href="./htmlsrc/minid.ast.html#L1221" kind="ctor" beg="1221" end="1230">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Identifier <em>index</em>, Expression <em>lo</em>, Expression <em>hi</em>, Expression <em>step</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1221">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ForeachStmt" href="./htmlsrc/minid.ast.html#L1236" kind="class" beg="1236" end="1274">ForeachStmt</a> : Statement; <a title="Permalink to this symbol" href="#ForeachStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1236">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a foreach loop.</div>
<dl>
<dt class="decl">Identifier[] <a class="symbol _variable" name="ForeachStmt.indices" href="./htmlsrc/minid.ast.html#L1243" kind="variable" beg="1243" end="1243">indices</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachStmt.indices" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1243">#</a></dt>
<dd class="ddef">
<div class="summary">The list of index names (the names before the semicolon).  This list is always at least
	two elements long.  This is because when you write a foreach loop with only one index,
	an implicit dummy index is inserted before it.</div></dd>
<dt class="decl">Expression[] <a class="symbol _variable" name="ForeachStmt.container" href="./htmlsrc/minid.ast.html#L1251" kind="variable" beg="1251" end="1251">container</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachStmt.container" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1251">#</a></dt>
<dd class="ddef">
<div class="summary">The container (the stuff after the semicolon).  This array can be 1, 2, or 3 elements
	long.  Semantically, the first element is the "iterator", the second the "state", and
	the third the "index".  However MiniD will automatically call opApply on the "iterator"
	if it's not a function, so this can function like a foreach loop in D.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="ForeachStmt.code" href="./htmlsrc/minid.ast.html#L1256" kind="variable" beg="1256" end="1256">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1256">#</a></dt>
<dd class="ddef">
<div class="summary">The code inside the loop.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ForeachStmt.this" href="./htmlsrc/minid.ast.html#L1260" kind="ctor" beg="1260" end="1267">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Identifier[] <em>indices</em>, Expression[] <em>container</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1260">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ForeachStmt.cleanup" href="./htmlsrc/minid.ast.html#L1269" kind="function" beg="1269" end="1273">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ForeachStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1269">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="SwitchStmt" href="./htmlsrc/minid.ast.html#L1279" kind="class" beg="1279" end="1310">SwitchStmt</a> : Statement; <a title="Permalink to this symbol" href="#SwitchStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1279">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a switch statement.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="SwitchStmt.condition" href="./htmlsrc/minid.ast.html#L1284" kind="variable" beg="1284" end="1284">condition</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SwitchStmt.condition" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1284">#</a></dt>
<dd class="ddef">
<div class="summary">The value to switch on.</div></dd>
<dt class="decl">CaseStmt[] <a class="symbol _variable" name="SwitchStmt.cases" href="./htmlsrc/minid.ast.html#L1289" kind="variable" beg="1289" end="1289">cases</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SwitchStmt.cases" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1289">#</a></dt>
<dd class="ddef">
<div class="summary">A list of cases.  This is always at least one element long.</div></dd>
<dt class="decl">DefaultStmt <a class="symbol _variable" name="SwitchStmt.caseDefault" href="./htmlsrc/minid.ast.html#L1294" kind="variable" beg="1294" end="1294">caseDefault</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SwitchStmt.caseDefault" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1294">#</a></dt>
<dd class="ddef">
<div class="summary">An optional default case.  This member can be null.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="SwitchStmt.this" href="./htmlsrc/minid.ast.html#L1298" kind="ctor" beg="1298" end="1304">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>condition</em>, CaseStmt[] <em>cases</em>, DefaultStmt <em>caseDefault</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SwitchStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1298">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="SwitchStmt.cleanup" href="./htmlsrc/minid.ast.html#L1306" kind="function" beg="1306" end="1309">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#SwitchStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1306">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CaseStmt" href="./htmlsrc/minid.ast.html#L1315" kind="class" beg="1315" end="1348">CaseStmt</a> : Statement; <a title="Permalink to this symbol" href="#CaseStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1315">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a single case statement within a switch statement.</div>
<dl>
<dt class="decl">struct <a class="symbol _struct" name="CaseStmt.CaseCond" href="./htmlsrc/minid.ast.html#L1317" kind="struct" beg="1317" end="1321">CaseCond</a>; <a title="Permalink to this symbol" href="#CaseStmt.CaseCond" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1317">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="CaseStmt.CaseCond.exp" href="./htmlsrc/minid.ast.html#L1319" kind="variable" beg="1319" end="1319">exp</a>; <a title="Permalink to this symbol" href="#CaseStmt.CaseCond.exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1319">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">uint <a class="symbol _variable" name="CaseStmt.CaseCond.dynJump" href="./htmlsrc/minid.ast.html#L1320" kind="variable" beg="1320" end="1320">dynJump</a>; <a title="Permalink to this symbol" href="#CaseStmt.CaseCond.dynJump" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1320">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">CaseCond[] <a class="symbol _variable" name="CaseStmt.conditions" href="./htmlsrc/minid.ast.html#L1328" kind="variable" beg="1328" end="1328">conditions</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CaseStmt.conditions" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1328">#</a></dt>
<dd class="ddef">
<div class="summary">The list of values which will cause execution to jump to this case.  In the code
	"case 1, 2, 3:" this corresponds to "1, 2, 3".  This will always be at least one element
	long.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="CaseStmt.code" href="./htmlsrc/minid.ast.html#L1333" kind="variable" beg="1333" end="1333">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CaseStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1333">#</a></dt>
<dd class="ddef">
<div class="summary">The code of the case statement.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="CaseStmt.this" href="./htmlsrc/minid.ast.html#L1337" kind="ctor" beg="1337" end="1342">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, CaseCond[] <em>conditions</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CaseStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1337">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="CaseStmt.cleanup" href="./htmlsrc/minid.ast.html#L1344" kind="function" beg="1344" end="1347">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CaseStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1344">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="DefaultStmt" href="./htmlsrc/minid.ast.html#L1353" kind="class" beg="1353" end="1367">DefaultStmt</a> : Statement; <a title="Permalink to this symbol" href="#DefaultStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1353">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents the default case in a switch statement.</div>
<dl>
<dt class="decl">Statement <a class="symbol _variable" name="DefaultStmt.code" href="./htmlsrc/minid.ast.html#L1358" kind="variable" beg="1358" end="1358">code</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DefaultStmt.code" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1358">#</a></dt>
<dd class="ddef">
<div class="summary">The code of the statement.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="DefaultStmt.this" href="./htmlsrc/minid.ast.html#L1362" kind="ctor" beg="1362" end="1366">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Statement <em>code</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DefaultStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1362">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ContinueStmt" href="./htmlsrc/minid.ast.html#L1372" kind="class" beg="1372" end="1380">ContinueStmt</a> : Statement; <a title="Permalink to this symbol" href="#ContinueStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1372">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a continue statement.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="ContinueStmt.this" href="./htmlsrc/minid.ast.html#L1376" kind="ctor" beg="1376" end="1379">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ContinueStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1376">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="BreakStmt" href="./htmlsrc/minid.ast.html#L1385" kind="class" beg="1385" end="1393">BreakStmt</a> : Statement; <a title="Permalink to this symbol" href="#BreakStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1385">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a break statement.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="BreakStmt.this" href="./htmlsrc/minid.ast.html#L1389" kind="ctor" beg="1389" end="1392">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BreakStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1389">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ReturnStmt" href="./htmlsrc/minid.ast.html#L1398" kind="class" beg="1398" end="1417">ReturnStmt</a> : Statement; <a title="Permalink to this symbol" href="#ReturnStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1398">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a return statement.</div>
<dl>
<dt class="decl">Expression[] <a class="symbol _variable" name="ReturnStmt.exprs" href="./htmlsrc/minid.ast.html#L1403" kind="variable" beg="1403" end="1403">exprs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ReturnStmt.exprs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1403">#</a></dt>
<dd class="ddef">
<div class="summary">The list of expressions to return.  This array may have 0 or more elements.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ReturnStmt.this" href="./htmlsrc/minid.ast.html#L1407" kind="ctor" beg="1407" end="1411">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression[] <em>exprs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ReturnStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1407">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ReturnStmt.cleanup" href="./htmlsrc/minid.ast.html#L1413" kind="function" beg="1413" end="1416">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ReturnStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1413">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="TryStmt" href="./htmlsrc/minid.ast.html#L1423" kind="class" beg="1423" end="1461">TryStmt</a> : Statement; <a title="Permalink to this symbol" href="#TryStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1423">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a try-catch-finally statement.  It holds not only the try clause,
but either or both the catch and finally clauses.</div>
<dl>
<dt class="decl">Statement <a class="symbol _variable" name="TryStmt.tryBody" href="./htmlsrc/minid.ast.html#L1428" kind="variable" beg="1428" end="1428">tryBody</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TryStmt.tryBody" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1428">#</a></dt>
<dd class="ddef">
<div class="summary">The body of code to try.</div></dd>
<dt class="decl">Identifier <a class="symbol _variable" name="TryStmt.catchVar" href="./htmlsrc/minid.ast.html#L1436" kind="variable" beg="1436" end="1436">catchVar</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TryStmt.catchVar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1436">#</a></dt>
<dd class="ddef">
<div class="summary">The variable to use in the catch block.  In the code "try{}catch(e){}", this corresponds
	to 'e'.  This member can be null, in which case there is no catch block (and therefore
	there must be a finally block).  If this member is non-null, catchBody must also be
	non-null.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="TryStmt.catchBody" href="./htmlsrc/minid.ast.html#L1442" kind="variable" beg="1442" end="1442">catchBody</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TryStmt.catchBody" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1442">#</a></dt>
<dd class="ddef">
<div class="summary">The body of the catch block.  If this member is non-null, catchVar must also be non-null.
	If this member is null, finallyBody must be non-null.</div></dd>
<dt class="decl">Statement <a class="symbol _variable" name="TryStmt.finallyBody" href="./htmlsrc/minid.ast.html#L1448" kind="variable" beg="1448" end="1448">finallyBody</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TryStmt.finallyBody" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1448">#</a></dt>
<dd class="ddef">
<div class="summary">The body of the finally block.  If this member is null, catchVar and catchBody must be
	non-null.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="TryStmt.this" href="./htmlsrc/minid.ast.html#L1452" kind="ctor" beg="1452" end="1460">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Statement <em>tryBody</em>, Identifier <em>catchVar</em>, Statement <em>catchBody</em>, Statement <em>finallyBody</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TryStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1452">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ThrowStmt" href="./htmlsrc/minid.ast.html#L1466" kind="class" beg="1466" end="1480">ThrowStmt</a> : Statement; <a title="Permalink to this symbol" href="#ThrowStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1466">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a throw statement.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="ThrowStmt.exp" href="./htmlsrc/minid.ast.html#L1471" kind="variable" beg="1471" end="1471">exp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ThrowStmt.exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1471">#</a></dt>
<dd class="ddef">
<div class="summary">The value that should be thrown.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ThrowStmt.this" href="./htmlsrc/minid.ast.html#L1475" kind="ctor" beg="1475" end="1479">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Expression <em>exp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ThrowStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1475">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AssignStmt" href="./htmlsrc/minid.ast.html#L1485" kind="class" beg="1485" end="1514">AssignStmt</a> : Statement; <a title="Permalink to this symbol" href="#AssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1485">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents normal assignment, either single- or multi-target.</div>
<dl>
<dt class="decl">Expression[] <a class="symbol _variable" name="AssignStmt.lhs" href="./htmlsrc/minid.ast.html#L1492" kind="variable" beg="1492" end="1492">lhs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AssignStmt.lhs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1492">#</a></dt>
<dd class="ddef">
<div class="summary">The list of destination expressions.  This list always has at least one element.
	This list must contain only expressions which can be LHSes.  That will be checked
	at codegen time.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="AssignStmt.rhs" href="./htmlsrc/minid.ast.html#L1499" kind="variable" beg="1499" end="1499">rhs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AssignStmt.rhs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1499">#</a></dt>
<dd class="ddef">
<div class="summary">The right-hand side of the assignment.  If lhs.length &gt; 1, this must be a multi-value
	giving expression, meaning either a function call, vararg, sliced vararg, or yield
	expression.  Otherwise, it can be any kind of expression.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="AssignStmt.this" href="./htmlsrc/minid.ast.html#L1503" kind="ctor" beg="1503" end="1508">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression[] <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1503">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="AssignStmt.cleanup" href="./htmlsrc/minid.ast.html#L1510" kind="function" beg="1510" end="1513">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#AssignStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1510">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="OpAssignStmt" href="./htmlsrc/minid.ast.html#L1519" kind="class" beg="1519" end="1541">OpAssignStmt</a> : Statement; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#OpAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1519">#</a></dt>
<dd class="ddef">
<div class="summary">This node handles the common features of the reflexive assignments, as well as conditional assignment (?=).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="OpAssignStmt.lhs" href="./htmlsrc/minid.ast.html#L1526" kind="variable" beg="1526" end="1526">lhs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#OpAssignStmt.lhs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1526">#</a></dt>
<dd class="ddef">
<div class="summary">The left-hand-side of the assignment.  This may not be a constant value or '#vararg', and if
	this is a conditional assignment, it may not be 'this'.  These conditions will be checked at
	codegen.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="OpAssignStmt.rhs" href="./htmlsrc/minid.ast.html#L1531" kind="variable" beg="1531" end="1531">rhs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#OpAssignStmt.rhs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1531">#</a></dt>
<dd class="ddef">
<div class="summary">The right-hand-side of the assignment.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="OpAssignStmt.this" href="./htmlsrc/minid.ast.html#L1535" kind="ctor" beg="1535" end="1540">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#OpAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1535">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AddAssignStmt" href="./htmlsrc/minid.ast.html#L1546" kind="class" beg="1546" end="1554">AddAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#AddAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1546">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents addition assignment (+=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="AddAssignStmt.this" href="./htmlsrc/minid.ast.html#L1550" kind="ctor" beg="1550" end="1553">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AddAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1550">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="SubAssignStmt" href="./htmlsrc/minid.ast.html#L1559" kind="class" beg="1559" end="1567">SubAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#SubAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1559">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents subtraction assignment (-=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="SubAssignStmt.this" href="./htmlsrc/minid.ast.html#L1563" kind="ctor" beg="1563" end="1566">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SubAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1563">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CatAssignStmt" href="./htmlsrc/minid.ast.html#L1572" kind="class" beg="1572" end="1601">CatAssignStmt</a> : Statement; <a title="Permalink to this symbol" href="#CatAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1572">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents concatenation assignment (~=).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="CatAssignStmt.lhs" href="./htmlsrc/minid.ast.html#L1578" kind="variable" beg="1578" end="1578">lhs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatAssignStmt.lhs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1578">#</a></dt>
<dd class="ddef">
<div class="summary">The left-hand-side of the assignment.  The same constraints apply here as for other
	reflexive assignments.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="CatAssignStmt.rhs" href="./htmlsrc/minid.ast.html#L1583" kind="variable" beg="1583" end="1583">rhs</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatAssignStmt.rhs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1583">#</a></dt>
<dd class="ddef">
<div class="summary">The right-hand-side of the assignment.</div></dd>
<dt class="decl">Expression[] <a class="symbol _variable" name="CatAssignStmt.operands" href="./htmlsrc/minid.ast.html#L1585" kind="variable" beg="1585" end="1585">operands</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatAssignStmt.operands" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1585">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _variable" name="CatAssignStmt.collapsed" href="./htmlsrc/minid.ast.html#L1586" kind="variable" beg="1586" end="1586">collapsed</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatAssignStmt.collapsed" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1586">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _ctor" name="CatAssignStmt.this" href="./htmlsrc/minid.ast.html#L1590" kind="ctor" beg="1590" end="1595">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1590">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="CatAssignStmt.cleanup" href="./htmlsrc/minid.ast.html#L1597" kind="function" beg="1597" end="1600">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CatAssignStmt.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1597">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="MulAssignStmt" href="./htmlsrc/minid.ast.html#L1606" kind="class" beg="1606" end="1614">MulAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#MulAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1606">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents multiplication assignment (*=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="MulAssignStmt.this" href="./htmlsrc/minid.ast.html#L1610" kind="ctor" beg="1610" end="1613">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MulAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1610">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="DivAssignStmt" href="./htmlsrc/minid.ast.html#L1619" kind="class" beg="1619" end="1627">DivAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#DivAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1619">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents division assignment (/=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="DivAssignStmt.this" href="./htmlsrc/minid.ast.html#L1623" kind="ctor" beg="1623" end="1626">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DivAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1623">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ModAssignStmt" href="./htmlsrc/minid.ast.html#L1632" kind="class" beg="1632" end="1640">ModAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#ModAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1632">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents modulo assignment (%=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="ModAssignStmt.this" href="./htmlsrc/minid.ast.html#L1636" kind="ctor" beg="1636" end="1639">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ModAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1636">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="OrAssignStmt" href="./htmlsrc/minid.ast.html#L1645" kind="class" beg="1645" end="1653">OrAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#OrAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1645">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents bitwise OR assignment (|=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="OrAssignStmt.this" href="./htmlsrc/minid.ast.html#L1649" kind="ctor" beg="1649" end="1652">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#OrAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1649">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="XorAssignStmt" href="./htmlsrc/minid.ast.html#L1658" kind="class" beg="1658" end="1666">XorAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#XorAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1658">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents bitwise XOR assignment (^=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="XorAssignStmt.this" href="./htmlsrc/minid.ast.html#L1662" kind="ctor" beg="1662" end="1665">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#XorAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1662">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AndAssignStmt" href="./htmlsrc/minid.ast.html#L1671" kind="class" beg="1671" end="1679">AndAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#AndAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1671">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents bitwise AND assignment (&amp;=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="AndAssignStmt.this" href="./htmlsrc/minid.ast.html#L1675" kind="ctor" beg="1675" end="1678">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AndAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1675">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ShlAssignStmt" href="./htmlsrc/minid.ast.html#L1684" kind="class" beg="1684" end="1692">ShlAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#ShlAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1684">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents bitwise left-shift assignment (&lt;&lt;=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="ShlAssignStmt.this" href="./htmlsrc/minid.ast.html#L1688" kind="ctor" beg="1688" end="1691">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ShlAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1688">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ShrAssignStmt" href="./htmlsrc/minid.ast.html#L1697" kind="class" beg="1697" end="1705">ShrAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#ShrAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1697">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents bitwise right-shift assignment (&gt;&gt;=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="ShrAssignStmt.this" href="./htmlsrc/minid.ast.html#L1701" kind="ctor" beg="1701" end="1704">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ShrAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1701">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="UShrAssignStmt" href="./htmlsrc/minid.ast.html#L1710" kind="class" beg="1710" end="1718">UShrAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#UShrAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1710">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents bitwise unsigned right-shift assignment (&gt;&gt;&gt;=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="UShrAssignStmt.this" href="./htmlsrc/minid.ast.html#L1714" kind="ctor" beg="1714" end="1717">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#UShrAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1714">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CondAssignStmt" href="./htmlsrc/minid.ast.html#L1723" kind="class" beg="1723" end="1731">CondAssignStmt</a> : OpAssignStmt; <a title="Permalink to this symbol" href="#CondAssignStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1723">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents conditional assignment (?=).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="CondAssignStmt.this" href="./htmlsrc/minid.ast.html#L1727" kind="ctor" beg="1727" end="1730">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>lhs</em>, Expression <em>rhs</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CondAssignStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1727">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="IncStmt" href="./htmlsrc/minid.ast.html#L1736" kind="class" beg="1736" end="1750">IncStmt</a> : Statement; <a title="Permalink to this symbol" href="#IncStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1736">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an increment, either prefix or postfix (++a or a++).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="IncStmt.exp" href="./htmlsrc/minid.ast.html#L1741" kind="variable" beg="1741" end="1741">exp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IncStmt.exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1741">#</a></dt>
<dd class="ddef">
<div class="summary">The expression to modify.  The same constraints apply as for reflexive assignments.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="IncStmt.this" href="./htmlsrc/minid.ast.html#L1745" kind="ctor" beg="1745" end="1749">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>exp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IncStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1745">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="DecStmt" href="./htmlsrc/minid.ast.html#L1755" kind="class" beg="1755" end="1769">DecStmt</a> : Statement; <a title="Permalink to this symbol" href="#DecStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1755">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a decrement, either prefix or postfix (--a or a--).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="DecStmt.exp" href="./htmlsrc/minid.ast.html#L1760" kind="variable" beg="1760" end="1760">exp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DecStmt.exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1760">#</a></dt>
<dd class="ddef">
<div class="summary">The expression to modify.  The same constraints apply as for reflexive assignments.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="DecStmt.this" href="./htmlsrc/minid.ast.html#L1764" kind="ctor" beg="1764" end="1768">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>exp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DecStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1764">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="FuncEnvStmt" href="./htmlsrc/minid.ast.html#L1775" kind="class" beg="1775" end="1793">FuncEnvStmt</a> : Statement; <a title="Permalink to this symbol" href="#FuncEnvStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1775">#</a></dt>
<dd class="ddef">
<div class="summary">This node does not represent a grammar element, but rather a transient node type used when rewriting
the AST.  It's used to set a function's environment.</div>
<dl>
<dt class="decl">Identifier <a class="symbol _variable" name="FuncEnvStmt.funcName" href="./htmlsrc/minid.ast.html#L1779" kind="variable" beg="1779" end="1779">funcName</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncEnvStmt.funcName" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1779">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">Identifier <a class="symbol _variable" name="FuncEnvStmt.envName" href="./htmlsrc/minid.ast.html#L1783" kind="variable" beg="1783" end="1783">envName</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncEnvStmt.envName" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1783">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="FuncEnvStmt.this" href="./htmlsrc/minid.ast.html#L1787" kind="ctor" beg="1787" end="1792">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Identifier <em>funcName</em>, Identifier <em>envName</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncEnvStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1787">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="TypecheckStmt" href="./htmlsrc/minid.ast.html#L1798" kind="class" beg="1798" end="1811">TypecheckStmt</a> : Statement; <a title="Permalink to this symbol" href="#TypecheckStmt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1798">#</a></dt>
<dd class="ddef">
<div class="summary">This node is an internal node inserted in function bodies if parameter type checking is enabled.</div>
<dl>
<dt class="decl">FuncDef <a class="symbol _variable" name="TypecheckStmt.def" href="./htmlsrc/minid.ast.html#L1802" kind="variable" beg="1802" end="1802">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TypecheckStmt.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1802">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="TypecheckStmt.this" href="./htmlsrc/minid.ast.html#L1806" kind="ctor" beg="1806" end="1810">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, FuncDef <em>def</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TypecheckStmt.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1806">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Expression" href="./htmlsrc/minid.ast.html#L1816" kind="class" beg="1816" end="1991">Expression</a> : AstNode; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#Expression" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1816">#</a></dt>
<dd class="ddef">
<div class="summary">The base class for all expressions.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="Expression.this" href="./htmlsrc/minid.ast.html#L1820" kind="ctor" beg="1820" end="1823">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1820">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="Expression.checkToNothing" href="./htmlsrc/minid.ast.html#L1829" kind="function" beg="1829" end="1833">checkToNothing</a><span class="params">(ICompiler <em>c</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.checkToNothing" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1829">#</a></dt>
<dd class="ddef">
<div class="summary">Ensure that this expression can be evaluated to nothing, i.e. that it can exist
	on its own.  Throws an exception if not.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.hasSideEffects" href="./htmlsrc/minid.ast.html#L1839" kind="function" beg="1839" end="1842">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1839">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether or not this expression has side effects.  If this returns false,
	checkToNothing will throw an error.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Expression.checkMultRet" href="./htmlsrc/minid.ast.html#L1848" kind="function" beg="1848" end="1852">checkMultRet</a><span class="params">(ICompiler <em>c</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.checkMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1848">#</a></dt>
<dd class="ddef">
<div class="summary">Ensure that this expression can give multiple return values.  If it can't, throws an
	exception.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isMultRet" href="./htmlsrc/minid.ast.html#L1858" kind="function" beg="1858" end="1861">isMultRet</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1858">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression can give multiple return values.  If this returns
	false, checkMultRet will throw an error.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Expression.checkLHS" href="./htmlsrc/minid.ast.html#L1867" kind="function" beg="1867" end="1871">checkLHS</a><span class="params">(ICompiler <em>c</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.checkLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1867">#</a></dt>
<dd class="ddef">
<div class="summary">Ensure that this expression can be the left-hand side of an assignment.  If it can't,
	throws an exception.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isLHS" href="./htmlsrc/minid.ast.html#L1877" kind="function" beg="1877" end="1880">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1877">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression can be the left-hand side of an assignment.  If this
	returns false, checkLHS will throw an error.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isConstant" href="./htmlsrc/minid.ast.html#L1885" kind="function" beg="1885" end="1888">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1885">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is a constant value.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isNull" href="./htmlsrc/minid.ast.html#L1893" kind="function" beg="1893" end="1896">isNull</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isNull" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1893">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is 'null'.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isBool" href="./htmlsrc/minid.ast.html#L1901" kind="function" beg="1901" end="1904">isBool</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isBool" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1901">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is a boolean constant.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.asBool" href="./htmlsrc/minid.ast.html#L1910" kind="function" beg="1910" end="1913">asBool</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.asBool" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1910">#</a></dt>
<dd class="ddef">
<div class="summary">Returns this expression as a boolean constant, if possible.  assert(false)s
	otherwise.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isInt" href="./htmlsrc/minid.ast.html#L1918" kind="function" beg="1918" end="1921">isInt</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isInt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1918">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is an integer constant.</div></dd>
<dt class="decl">mdint <a class="symbol _function" name="Expression.asInt" href="./htmlsrc/minid.ast.html#L1927" kind="function" beg="1927" end="1930">asInt</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.asInt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1927">#</a></dt>
<dd class="ddef">
<div class="summary">Returns this expression as an integer constant, if possible.  assert(false)s
	otherwise.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isFloat" href="./htmlsrc/minid.ast.html#L1935" kind="function" beg="1935" end="1938">isFloat</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isFloat" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1935">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is a floating point constant.</div></dd>
<dt class="decl">mdfloat <a class="symbol _function" name="Expression.asFloat" href="./htmlsrc/minid.ast.html#L1944" kind="function" beg="1944" end="1947">asFloat</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.asFloat" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1944">#</a></dt>
<dd class="ddef">
<div class="summary">Returns this expression as a floating point constant, if possible.  assert(false)s
	otherwise.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isChar" href="./htmlsrc/minid.ast.html#L1952" kind="function" beg="1952" end="1955">isChar</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isChar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1952">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is a character constant.</div></dd>
<dt class="decl">dchar <a class="symbol _function" name="Expression.asChar" href="./htmlsrc/minid.ast.html#L1961" kind="function" beg="1961" end="1964">asChar</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.asChar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1961">#</a></dt>
<dd class="ddef">
<div class="summary">Returns this expression as a character constant, if possible.  assert(false)s
	otherwise.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isString" href="./htmlsrc/minid.ast.html#L1969" kind="function" beg="1969" end="1972">isString</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1969">#</a></dt>
<dd class="ddef">
<div class="summary">Returns whether this expression is a string constant.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Expression.asString" href="./htmlsrc/minid.ast.html#L1978" kind="function" beg="1978" end="1981">asString</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.asString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1978">#</a></dt>
<dd class="ddef">
<div class="summary">Returns this expression as a string constant, if possible.  assert(false)s
	otherwise.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Expression.isTrue" href="./htmlsrc/minid.ast.html#L1987" kind="function" beg="1987" end="1990">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Expression.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1987">#</a></dt>
<dd class="ddef">
<div class="summary">If this expression is a constant value, returns whether this expression would evaluate
	as true according to MiniD's definition of truth.  Otherwise returns false.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CondExp" href="./htmlsrc/minid.ast.html#L1996" kind="class" beg="1996" end="2027">CondExp</a> : Expression; <a title="Permalink to this symbol" href="#CondExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L1996">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a conditional (?:) expression.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="CondExp.cond" href="./htmlsrc/minid.ast.html#L2001" kind="variable" beg="2001" end="2001">cond</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CondExp.cond" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2001">#</a></dt>
<dd class="ddef">
<div class="summary">The first expression, which comes before the question mark.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="CondExp.op1" href="./htmlsrc/minid.ast.html#L2006" kind="variable" beg="2006" end="2006">op1</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CondExp.op1" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2006">#</a></dt>
<dd class="ddef">
<div class="summary">The second expression, which comes between the question mark and the colon.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="CondExp.op2" href="./htmlsrc/minid.ast.html#L2011" kind="variable" beg="2011" end="2011">op2</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CondExp.op2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2011">#</a></dt>
<dd class="ddef">
<div class="summary">The third expression, which comes after the colon.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="CondExp.this" href="./htmlsrc/minid.ast.html#L2015" kind="ctor" beg="2015" end="2021">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>cond</em>, Expression <em>op1</em>, Expression <em>op2</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CondExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2015">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="CondExp.hasSideEffects" href="./htmlsrc/minid.ast.html#L2023" kind="function" beg="2023" end="2026">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CondExp.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2023">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="BinaryExp" href="./htmlsrc/minid.ast.html#L2033" kind="class" beg="2033" end="2053">BinaryExp</a> : Expression; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#BinaryExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2033">#</a></dt>
<dd class="ddef">
<div class="summary">The base class for binary expressions.  Many of them share some or all of their code
generation phases, as well has having other similar properties.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="BinaryExp.op1" href="./htmlsrc/minid.ast.html#L2038" kind="variable" beg="2038" end="2038">op1</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BinaryExp.op1" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2038">#</a></dt>
<dd class="ddef">
<div class="summary">The left-hand operand.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="BinaryExp.op2" href="./htmlsrc/minid.ast.html#L2043" kind="variable" beg="2043" end="2043">op2</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BinaryExp.op2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2043">#</a></dt>
<dd class="ddef">
<div class="summary">The right-hand operand.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="BinaryExp.this" href="./htmlsrc/minid.ast.html#L2047" kind="ctor" beg="2047" end="2052">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>, Expression <em>op1</em>, Expression <em>op2</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BinaryExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2047">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">auto <a class="symbol _variable" name="BinExpMixin" href="./htmlsrc/minid.ast.html#L2055" kind="variable" beg="2055" end="2059">BinExpMixin</a>; <span class="attrs">[<span class="prot">private</span>, <span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#BinExpMixin" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2055">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">class <a class="symbol _class" name="OrOrExp" href="./htmlsrc/minid.ast.html#L2064" kind="class" beg="2064" end="2072">OrOrExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#OrOrExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2064">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a logical or (||) expression.</div>
<dl>
<dt class="decl">bool <a class="symbol _function" name="OrOrExp.hasSideEffects" href="./htmlsrc/minid.ast.html#L2068" kind="function" beg="2068" end="2071">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#OrOrExp.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2068">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AndAndExp" href="./htmlsrc/minid.ast.html#L2077" kind="class" beg="2077" end="2085">AndAndExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#AndAndExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2077">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a logical or (||) expression.</div>
<dl>
<dt class="decl">bool <a class="symbol _function" name="AndAndExp.hasSideEffects" href="./htmlsrc/minid.ast.html#L2081" kind="function" beg="2081" end="2084">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#AndAndExp.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2081">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="OrExp" href="./htmlsrc/minid.ast.html#L2090" kind="class" beg="2090" end="2093">OrExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#OrExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2090">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise or expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="XorExp" href="./htmlsrc/minid.ast.html#L2098" kind="class" beg="2098" end="2101">XorExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#XorExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2098">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise xor expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="AndExp" href="./htmlsrc/minid.ast.html#L2106" kind="class" beg="2106" end="2109">AndExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#AndExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2106">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise and expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="BaseEqualExp" href="./htmlsrc/minid.ast.html#L2114" kind="class" beg="2114" end="2120">BaseEqualExp</a> : BinaryExp; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#BaseEqualExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2114">#</a></dt>
<dd class="ddef">
<div class="summary">This class serves as a base class for all equality expressions.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="BaseEqualExp.this" href="./htmlsrc/minid.ast.html#L2116" kind="ctor" beg="2116" end="2119">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>, Expression <em>left</em>, Expression <em>right</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BaseEqualExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2116">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="EqualExp" href="./htmlsrc/minid.ast.html#L2125" kind="class" beg="2125" end="2128">EqualExp</a> : BaseEqualExp; <a title="Permalink to this symbol" href="#EqualExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2125">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an equality (==) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="NotEqualExp" href="./htmlsrc/minid.ast.html#L2133" kind="class" beg="2133" end="2136">NotEqualExp</a> : BaseEqualExp; <a title="Permalink to this symbol" href="#NotEqualExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2133">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an inequality (!=) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="IsExp" href="./htmlsrc/minid.ast.html#L2141" kind="class" beg="2141" end="2144">IsExp</a> : BaseEqualExp; <a title="Permalink to this symbol" href="#IsExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2141">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an identity (is) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="NotIsExp" href="./htmlsrc/minid.ast.html#L2149" kind="class" beg="2149" end="2152">NotIsExp</a> : BaseEqualExp; <a title="Permalink to this symbol" href="#NotIsExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2149">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a nonidentity (!is) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="BaseCmpExp" href="./htmlsrc/minid.ast.html#L2157" kind="class" beg="2157" end="2163">BaseCmpExp</a> : BinaryExp; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#BaseCmpExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2157">#</a></dt>
<dd class="ddef">
<div class="summary">This class serves as a base class for comparison expressions.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="BaseCmpExp.this" href="./htmlsrc/minid.ast.html#L2159" kind="ctor" beg="2159" end="2162">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>, Expression <em>left</em>, Expression <em>right</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BaseCmpExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2159">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="LTExp" href="./htmlsrc/minid.ast.html#L2168" kind="class" beg="2168" end="2171">LTExp</a> : BaseCmpExp; <a title="Permalink to this symbol" href="#LTExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2168">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a less-than (&lt;) comparison.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="LEExp" href="./htmlsrc/minid.ast.html#L2176" kind="class" beg="2176" end="2179">LEExp</a> : BaseCmpExp; <a title="Permalink to this symbol" href="#LEExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2176">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a less-than-or-equals (&lt;=) comparison.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="GTExp" href="./htmlsrc/minid.ast.html#L2184" kind="class" beg="2184" end="2187">GTExp</a> : BaseCmpExp; <a title="Permalink to this symbol" href="#GTExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2184">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a greater-than (&gt;) comparison.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="GEExp" href="./htmlsrc/minid.ast.html#L2192" kind="class" beg="2192" end="2195">GEExp</a> : BaseCmpExp; <a title="Permalink to this symbol" href="#GEExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2192">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a greater-than-or-equals (&gt;=) comparison.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="Cmp3Exp" href="./htmlsrc/minid.ast.html#L2200" kind="class" beg="2200" end="2203">Cmp3Exp</a> : BinaryExp; <a title="Permalink to this symbol" href="#Cmp3Exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2200">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a three-way comparison (&lt;=&gt;) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="AsExp" href="./htmlsrc/minid.ast.html#L2208" kind="class" beg="2208" end="2211">AsExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#AsExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2208">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an 'as' expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="InExp" href="./htmlsrc/minid.ast.html#L2216" kind="class" beg="2216" end="2219">InExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#InExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2216">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an 'in' expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="NotInExp" href="./htmlsrc/minid.ast.html#L2224" kind="class" beg="2224" end="2227">NotInExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#NotInExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2224">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a '!in' expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="ShlExp" href="./htmlsrc/minid.ast.html#L2232" kind="class" beg="2232" end="2235">ShlExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#ShlExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2232">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise left-shift (&lt;&lt;) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="ShrExp" href="./htmlsrc/minid.ast.html#L2240" kind="class" beg="2240" end="2243">ShrExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#ShrExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2240">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise right-shift (&gt;&gt;) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="UShrExp" href="./htmlsrc/minid.ast.html#L2248" kind="class" beg="2248" end="2251">UShrExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#UShrExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2248">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise unsigned right-shift (&gt;&gt;&gt;) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="AddExp" href="./htmlsrc/minid.ast.html#L2256" kind="class" beg="2256" end="2259">AddExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#AddExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2256">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an addition (+) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="SubExp" href="./htmlsrc/minid.ast.html#L2264" kind="class" beg="2264" end="2267">SubExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#SubExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2264">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a subtraction (-) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="CatExp" href="./htmlsrc/minid.ast.html#L2272" kind="class" beg="2272" end="2283">CatExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#CatExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2272">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a concatenation (~) expression.</div>
<dl>
<dt class="decl">Expression[] <a class="symbol _variable" name="CatExp.operands" href="./htmlsrc/minid.ast.html#L2274" kind="variable" beg="2274" end="2274">operands</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatExp.operands" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2274">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _variable" name="CatExp.collapsed" href="./htmlsrc/minid.ast.html#L2275" kind="variable" beg="2275" end="2275">collapsed</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CatExp.collapsed" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2275">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="CatExp.cleanup" href="./htmlsrc/minid.ast.html#L2279" kind="function" beg="2279" end="2282">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CatExp.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2279">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="MulExp" href="./htmlsrc/minid.ast.html#L2288" kind="class" beg="2288" end="2291">MulExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#MulExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2288">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a multiplication (*) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="DivExp" href="./htmlsrc/minid.ast.html#L2296" kind="class" beg="2296" end="2299">DivExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#DivExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2296">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a division (/) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="ModExp" href="./htmlsrc/minid.ast.html#L2304" kind="class" beg="2304" end="2307">ModExp</a> : BinaryExp; <a title="Permalink to this symbol" href="#ModExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2304">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a modulo (%) expression.</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="UnExp" href="./htmlsrc/minid.ast.html#L2313" kind="class" beg="2313" end="2327">UnExp</a> : Expression; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#UnExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2313">#</a></dt>
<dd class="ddef">
<div class="summary">This class is the base class for unary expressions.  These tend to share some code
generation, as well as all having a single operand.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="UnExp.op" href="./htmlsrc/minid.ast.html#L2318" kind="variable" beg="2318" end="2318">op</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#UnExp.op" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2318">#</a></dt>
<dd class="ddef">
<div class="summary">The operand of the expression.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="UnExp.this" href="./htmlsrc/minid.ast.html#L2322" kind="ctor" beg="2322" end="2326">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>, Expression <em>operand</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#UnExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2322">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">auto <a class="symbol _variable" name="UnExpMixin" href="./htmlsrc/minid.ast.html#L2329" kind="variable" beg="2329" end="2333">UnExpMixin</a>; <span class="attrs">[<span class="prot">private</span>, <span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#UnExpMixin" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2329">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">class <a class="symbol _class" name="NegExp" href="./htmlsrc/minid.ast.html#L2338" kind="class" beg="2338" end="2341">NegExp</a> : UnExp; <a title="Permalink to this symbol" href="#NegExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2338">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a negation (-a).</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="NotExp" href="./htmlsrc/minid.ast.html#L2346" kind="class" beg="2346" end="2349">NotExp</a> : UnExp; <a title="Permalink to this symbol" href="#NotExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2346">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a logical not expression (!a).</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="ComExp" href="./htmlsrc/minid.ast.html#L2354" kind="class" beg="2354" end="2357">ComExp</a> : UnExp; <a title="Permalink to this symbol" href="#ComExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2354">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a bitwise complement expression (~a).</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="LenExp" href="./htmlsrc/minid.ast.html#L2362" kind="class" beg="2362" end="2370">LenExp</a> : UnExp; <a title="Permalink to this symbol" href="#LenExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2362">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a length expression (#a).</div>
<dl>
<dt class="decl">bool <a class="symbol _function" name="LenExp.isLHS" href="./htmlsrc/minid.ast.html#L2366" kind="function" beg="2366" end="2369">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#LenExp.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2366">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CoroutineExp" href="./htmlsrc/minid.ast.html#L2375" kind="class" beg="2375" end="2378">CoroutineExp</a> : UnExp; <a title="Permalink to this symbol" href="#CoroutineExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2375">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents the coroutine expression (coroutine a).</div>
</dd>
<dt class="decl">class <a class="symbol _class" name="PostfixExp" href="./htmlsrc/minid.ast.html#L2385" kind="class" beg="2385" end="2393">PostfixExp</a> : UnExp; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#PostfixExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2385">#</a></dt>
<dd class="ddef">
<div class="summary">This class is the base class for postfix expressions, that is expressions which kind of
attach to the end of other expressions.  It inherits from UnExp, so that the single
operand becomes the expression to which the postfix expression becomes attached.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="PostfixExp.this" href="./htmlsrc/minid.ast.html#L2389" kind="ctor" beg="2389" end="2392">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>, Expression <em>operand</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#PostfixExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2389">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="DotExp" href="./htmlsrc/minid.ast.html#L2399" kind="class" beg="2399" end="2420">DotExp</a> : PostfixExp; <a title="Permalink to this symbol" href="#DotExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2399">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents dot expressions, in both the dot-ident (a.x) and dot-expression
(a.(expr)) forms.  These correspond to field access.</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="DotExp.name" href="./htmlsrc/minid.ast.html#L2406" kind="variable" beg="2406" end="2406">name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DotExp.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2406">#</a></dt>
<dd class="ddef">
<div class="summary">The name.  This can be any expression, as long as it evaluates to a string.  An
	expression like "a.x" is sugar for "a.("x")", so this will be a string literal
	in that case.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="DotExp.this" href="./htmlsrc/minid.ast.html#L2410" kind="ctor" beg="2410" end="2414">this</a><span class="params">(ICompiler <em>c</em>, Expression <em>operand</em>, Expression <em>name</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DotExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2410">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="DotExp.isLHS" href="./htmlsrc/minid.ast.html#L2416" kind="function" beg="2416" end="2419">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#DotExp.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2416">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="DotSuperExp" href="./htmlsrc/minid.ast.html#L2425" kind="class" beg="2425" end="2431">DotSuperExp</a> : PostfixExp; <a title="Permalink to this symbol" href="#DotSuperExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2425">#</a></dt>
<dd class="ddef">
<div class="summary">This node corresponds to the super expression (a.super).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="DotSuperExp.this" href="./htmlsrc/minid.ast.html#L2427" kind="ctor" beg="2427" end="2430">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>endLocation</em>, Expression <em>operand</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#DotSuperExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2427">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="IndexExp" href="./htmlsrc/minid.ast.html#L2436" kind="class" beg="2436" end="2455">IndexExp</a> : PostfixExp; <a title="Permalink to this symbol" href="#IndexExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2436">#</a></dt>
<dd class="ddef">
<div class="summary">This node corresponds to an indexing operation (a[x]).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="IndexExp.index" href="./htmlsrc/minid.ast.html#L2441" kind="variable" beg="2441" end="2441">index</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IndexExp.index" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2441">#</a></dt>
<dd class="ddef">
<div class="summary">The index of the operation (the value inside the brackets).</div></dd>
<dt class="decl"><a class="symbol _ctor" name="IndexExp.this" href="./htmlsrc/minid.ast.html#L2445" kind="ctor" beg="2445" end="2449">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>endLocation</em>, Expression <em>operand</em>, Expression <em>index</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IndexExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2445">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="IndexExp.isLHS" href="./htmlsrc/minid.ast.html#L2451" kind="function" beg="2451" end="2454">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IndexExp.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2451">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="SliceExp" href="./htmlsrc/minid.ast.html#L2460" kind="class" beg="2460" end="2487">SliceExp</a> : PostfixExp; <a title="Permalink to this symbol" href="#SliceExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2460">#</a></dt>
<dd class="ddef">
<div class="summary">This node corresponds to a slicing operation (a[x .. y]).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="SliceExp.loIndex" href="./htmlsrc/minid.ast.html#L2466" kind="variable" beg="2466" end="2466">loIndex</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SliceExp.loIndex" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2466">#</a></dt>
<dd class="ddef">
<div class="summary">The low index of the slice.  If no low index is given, this will be a NullExp.
	This member will therefore never be null.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="SliceExp.hiIndex" href="./htmlsrc/minid.ast.html#L2472" kind="variable" beg="2472" end="2472">hiIndex</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SliceExp.hiIndex" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2472">#</a></dt>
<dd class="ddef">
<div class="summary">The high index of the slice.  If no high index is given, this will be a NullExp.
	This member will therefore never be null.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="SliceExp.this" href="./htmlsrc/minid.ast.html#L2476" kind="ctor" beg="2476" end="2481">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>endLocation</em>, Expression <em>operand</em>, Expression <em>loIndex</em>, Expression <em>hiIndex</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#SliceExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2476">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="SliceExp.isLHS" href="./htmlsrc/minid.ast.html#L2483" kind="function" beg="2483" end="2486">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#SliceExp.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2483">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CallExp" href="./htmlsrc/minid.ast.html#L2492" kind="class" beg="2492" end="2529">CallExp</a> : PostfixExp; <a title="Permalink to this symbol" href="#CallExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2492">#</a></dt>
<dd class="ddef">
<div class="summary">This node corresponds to a non-method function call (f()).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="CallExp.context" href="./htmlsrc/minid.ast.html#L2499" kind="variable" beg="2499" end="2499">context</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CallExp.context" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2499">#</a></dt>
<dd class="ddef">
<div class="summary">The context to be used when calling the function.  This corresponds to 'x' in
	the expression "f(with x)".  If this member is null, a context of 'null' will
	be passed to the function.</div></dd>
<dt class="decl">Expression[] <a class="symbol _variable" name="CallExp.args" href="./htmlsrc/minid.ast.html#L2504" kind="variable" beg="2504" end="2504">args</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CallExp.args" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2504">#</a></dt>
<dd class="ddef">
<div class="summary">The list of arguments to be passed to the function.  This can be 0 or more elements.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="CallExp.this" href="./htmlsrc/minid.ast.html#L2508" kind="ctor" beg="2508" end="2513">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>endLocation</em>, Expression <em>operand</em>, Expression <em>context</em>, Expression[] <em>args</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CallExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2508">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="CallExp.hasSideEffects" href="./htmlsrc/minid.ast.html#L2515" kind="function" beg="2515" end="2518">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CallExp.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2515">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="CallExp.isMultRet" href="./htmlsrc/minid.ast.html#L2520" kind="function" beg="2520" end="2523">isMultRet</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CallExp.isMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2520">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="CallExp.cleanup" href="./htmlsrc/minid.ast.html#L2525" kind="function" beg="2525" end="2528">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CallExp.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2525">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="MethodCallExp" href="./htmlsrc/minid.ast.html#L2534" kind="class" beg="2534" end="2582">MethodCallExp</a> : PostfixExp; <a title="Permalink to this symbol" href="#MethodCallExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2534">#</a></dt>
<dd class="ddef">
<div class="summary">This class corresponds to a method call in either form (a.f() or a.("f")()).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="MethodCallExp.method" href="./htmlsrc/minid.ast.html#L2538" kind="variable" beg="2538" end="2538">method</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.method" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2538">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="MethodCallExp.context" href="./htmlsrc/minid.ast.html#L2545" kind="variable" beg="2545" end="2545">context</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.context" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2545">#</a></dt>
<dd class="ddef">
<div class="summary">The context to be used when calling the method.  This corresponds to 'x' in
	the expression "a.f(with x)".  If this member is null, there is no custom
	context and the context will be determined automatically.</div></dd>
<dt class="decl">Expression[] <a class="symbol _variable" name="MethodCallExp.args" href="./htmlsrc/minid.ast.html#L2550" kind="variable" beg="2550" end="2550">args</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.args" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2550">#</a></dt>
<dd class="ddef">
<div class="summary">The list of argument to pass to the method.  This can have 0 or more elements.</div></dd>
<dt class="decl">bool <a class="symbol _variable" name="MethodCallExp.isSuperCall" href="./htmlsrc/minid.ast.html#L2555" kind="variable" beg="2555" end="2555">isSuperCall</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.isSuperCall" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2555">#</a></dt>
<dd class="ddef">
<div class="summary">If this member is true, 'op' will be null (and will be interpreted as a "this").</div></dd>
<dt class="decl"><a class="symbol _ctor" name="MethodCallExp.this" href="./htmlsrc/minid.ast.html#L2559" kind="ctor" beg="2559" end="2566">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>operand</em>, Expression <em>method</em>, Expression <em>context</em>, Expression[] <em>args</em>, bool <em>isSuperCall</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2559">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="MethodCallExp.hasSideEffects" href="./htmlsrc/minid.ast.html#L2568" kind="function" beg="2568" end="2571">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2568">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="MethodCallExp.isMultRet" href="./htmlsrc/minid.ast.html#L2573" kind="function" beg="2573" end="2576">isMultRet</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.isMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2573">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="MethodCallExp.cleanup" href="./htmlsrc/minid.ast.html#L2578" kind="function" beg="2578" end="2581">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#MethodCallExp.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2578">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="PrimaryExp" href="./htmlsrc/minid.ast.html#L2587" kind="class" beg="2587" end="2602">PrimaryExp</a> : Expression; <a title="Permalink to this symbol" href="#PrimaryExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2587">#</a></dt>
<dd class="ddef">
<div class="summary">The base class for primary expressions.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="PrimaryExp.this" href="./htmlsrc/minid.ast.html#L2591" kind="ctor" beg="2591" end="2594">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, AstTag <em>type</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#PrimaryExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2591">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="PrimaryExp.this:2" href="./htmlsrc/minid.ast.html#L2598" kind="ctor" beg="2598" end="2601">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>type</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#PrimaryExp.this:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2598">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="IdentExp" href="./htmlsrc/minid.ast.html#L2607" kind="class" beg="2607" end="2627">IdentExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#IdentExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2607">#</a></dt>
<dd class="ddef">
<div class="summary">An identifier expression.  These can refer to locals, upvalues, or globals.</div>
<dl>
<dt class="decl">Identifier <a class="symbol _variable" name="IdentExp.name" href="./htmlsrc/minid.ast.html#L2612" kind="variable" beg="2612" end="2612">name</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IdentExp.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2612">#</a></dt>
<dd class="ddef">
<div class="summary">The identifier itself.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="IdentExp.this" href="./htmlsrc/minid.ast.html#L2617" kind="ctor" beg="2617" end="2621">this</a><span class="params">(ICompiler <em>c</em>, Identifier <em>i</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IdentExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2617">#</a></dt>
<dd class="ddef">
<div class="summary">Create an ident exp from an identifier object.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="IdentExp.isLHS" href="./htmlsrc/minid.ast.html#L2623" kind="function" beg="2623" end="2626">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IdentExp.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2623">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ThisExp" href="./htmlsrc/minid.ast.html#L2632" kind="class" beg="2632" end="2640">ThisExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#ThisExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2632">#</a></dt>
<dd class="ddef">
<div class="summary">Represents the ubiquitous 'this' variable.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="ThisExp.this" href="./htmlsrc/minid.ast.html#L2636" kind="ctor" beg="2636" end="2639">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ThisExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2636">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="NullExp" href="./htmlsrc/minid.ast.html#L2645" kind="class" beg="2645" end="2668">NullExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#NullExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2645">#</a></dt>
<dd class="ddef">
<div class="summary">Represents the 'null' literal.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="NullExp.this" href="./htmlsrc/minid.ast.html#L2649" kind="ctor" beg="2649" end="2652">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NullExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2649">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="NullExp.isConstant" href="./htmlsrc/minid.ast.html#L2654" kind="function" beg="2654" end="2657">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#NullExp.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2654">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="NullExp.isTrue" href="./htmlsrc/minid.ast.html#L2659" kind="function" beg="2659" end="2662">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#NullExp.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2659">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="NullExp.isNull" href="./htmlsrc/minid.ast.html#L2664" kind="function" beg="2664" end="2667">isNull</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#NullExp.isNull" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2664">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="BoolExp" href="./htmlsrc/minid.ast.html#L2673" kind="class" beg="2673" end="2707">BoolExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#BoolExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2673">#</a></dt>
<dd class="ddef">
<div class="summary">Represents either a 'true' or 'false' literal.</div>
<dl>
<dt class="decl">bool <a class="symbol _variable" name="BoolExp.value" href="./htmlsrc/minid.ast.html#L2678" kind="variable" beg="2678" end="2678">value</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BoolExp.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2678">#</a></dt>
<dd class="ddef">
<div class="summary">The actual value of the literal.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="BoolExp.this" href="./htmlsrc/minid.ast.html#L2682" kind="ctor" beg="2682" end="2686">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, bool <em>value</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#BoolExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2682">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="BoolExp.isConstant" href="./htmlsrc/minid.ast.html#L2688" kind="function" beg="2688" end="2691">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#BoolExp.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2688">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="BoolExp.isTrue" href="./htmlsrc/minid.ast.html#L2693" kind="function" beg="2693" end="2696">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#BoolExp.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2693">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="BoolExp.isBool" href="./htmlsrc/minid.ast.html#L2698" kind="function" beg="2698" end="2701">isBool</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#BoolExp.isBool" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2698">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="BoolExp.asBool" href="./htmlsrc/minid.ast.html#L2703" kind="function" beg="2703" end="2706">asBool</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#BoolExp.asBool" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2703">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="VarargExp" href="./htmlsrc/minid.ast.html#L2713" kind="class" beg="2713" end="2726">VarargExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#VarargExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2713">#</a></dt>
<dd class="ddef">
<div class="summary">Represents the 'vararg' exp outside of a special form (i.e. not #vararg, vararg[x], or
vararg[x .. y]).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="VarargExp.this" href="./htmlsrc/minid.ast.html#L2717" kind="ctor" beg="2717" end="2720">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VarargExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2717">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="VarargExp.isMultRet" href="./htmlsrc/minid.ast.html#L2722" kind="function" beg="2722" end="2725">isMultRet</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VarargExp.isMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2722">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="VargLenExp" href="./htmlsrc/minid.ast.html#L2731" kind="class" beg="2731" end="2739">VargLenExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#VargLenExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2731">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents the variadic-length expression (#vararg).</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="VargLenExp.this" href="./htmlsrc/minid.ast.html#L2735" kind="ctor" beg="2735" end="2738">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VargLenExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2735">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="VargIndexExp" href="./htmlsrc/minid.ast.html#L2744" kind="class" beg="2744" end="2763">VargIndexExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#VargIndexExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2744">#</a></dt>
<dd class="ddef">
<div class="summary">This node corresponds to a variadic indexing operation (vararg[x]).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="VargIndexExp.index" href="./htmlsrc/minid.ast.html#L2749" kind="variable" beg="2749" end="2749">index</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VargIndexExp.index" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2749">#</a></dt>
<dd class="ddef">
<div class="summary">The index of the operation (the value inside the brackets).</div></dd>
<dt class="decl"><a class="symbol _ctor" name="VargIndexExp.this" href="./htmlsrc/minid.ast.html#L2753" kind="ctor" beg="2753" end="2757">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>index</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VargIndexExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2753">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="VargIndexExp.isLHS" href="./htmlsrc/minid.ast.html#L2759" kind="function" beg="2759" end="2762">isLHS</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#VargIndexExp.isLHS" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2759">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="VargSliceExp" href="./htmlsrc/minid.ast.html#L2768" kind="class" beg="2768" end="2793">VargSliceExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#VargSliceExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2768">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a variadic slice operation (vararg[x .. y]).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="VargSliceExp.loIndex" href="./htmlsrc/minid.ast.html#L2773" kind="variable" beg="2773" end="2773">loIndex</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VargSliceExp.loIndex" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2773">#</a></dt>
<dd class="ddef">
<div class="summary">The low index of the slice.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="VargSliceExp.hiIndex" href="./htmlsrc/minid.ast.html#L2778" kind="variable" beg="2778" end="2778">hiIndex</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VargSliceExp.hiIndex" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2778">#</a></dt>
<dd class="ddef">
<div class="summary">The high index of the slice.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="VargSliceExp.this" href="./htmlsrc/minid.ast.html#L2782" kind="ctor" beg="2782" end="2787">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>loIndex</em>, Expression <em>hiIndex</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#VargSliceExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2782">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="VargSliceExp.isMultRet" href="./htmlsrc/minid.ast.html#L2789" kind="function" beg="2789" end="2792">isMultRet</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#VargSliceExp.isMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2789">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="IntExp" href="./htmlsrc/minid.ast.html#L2798" kind="class" beg="2798" end="2837">IntExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#IntExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2798">#</a></dt>
<dd class="ddef">
<div class="summary">Represents an integer literal.</div>
<dl>
<dt class="decl">mdint <a class="symbol _variable" name="IntExp.value" href="./htmlsrc/minid.ast.html#L2803" kind="variable" beg="2803" end="2803">value</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IntExp.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2803">#</a></dt>
<dd class="ddef">
<div class="summary">The actual value of the literal.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="IntExp.this" href="./htmlsrc/minid.ast.html#L2807" kind="ctor" beg="2807" end="2811">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, mdint <em>value</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IntExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2807">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="IntExp.isConstant" href="./htmlsrc/minid.ast.html#L2813" kind="function" beg="2813" end="2816">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IntExp.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2813">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="IntExp.isTrue" href="./htmlsrc/minid.ast.html#L2818" kind="function" beg="2818" end="2821">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IntExp.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2818">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="IntExp.isInt" href="./htmlsrc/minid.ast.html#L2823" kind="function" beg="2823" end="2826">isInt</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IntExp.isInt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2823">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">mdint <a class="symbol _function" name="IntExp.asInt" href="./htmlsrc/minid.ast.html#L2828" kind="function" beg="2828" end="2831">asInt</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IntExp.asInt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2828">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">mdfloat <a class="symbol _function" name="IntExp.asFloat" href="./htmlsrc/minid.ast.html#L2833" kind="function" beg="2833" end="2836">asFloat</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#IntExp.asFloat" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2833">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="FloatExp" href="./htmlsrc/minid.ast.html#L2842" kind="class" beg="2842" end="2876">FloatExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#FloatExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2842">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a floating-point literal.</div>
<dl>
<dt class="decl">mdfloat <a class="symbol _variable" name="FloatExp.value" href="./htmlsrc/minid.ast.html#L2847" kind="variable" beg="2847" end="2847">value</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FloatExp.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2847">#</a></dt>
<dd class="ddef">
<div class="summary">The actual value of the literal.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="FloatExp.this" href="./htmlsrc/minid.ast.html#L2851" kind="ctor" beg="2851" end="2855">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, mdfloat <em>value</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FloatExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2851">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="FloatExp.isConstant" href="./htmlsrc/minid.ast.html#L2857" kind="function" beg="2857" end="2860">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#FloatExp.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2857">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="FloatExp.isTrue" href="./htmlsrc/minid.ast.html#L2862" kind="function" beg="2862" end="2865">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#FloatExp.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2862">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="FloatExp.isFloat" href="./htmlsrc/minid.ast.html#L2867" kind="function" beg="2867" end="2870">isFloat</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#FloatExp.isFloat" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2867">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">mdfloat <a class="symbol _function" name="FloatExp.asFloat" href="./htmlsrc/minid.ast.html#L2872" kind="function" beg="2872" end="2875">asFloat</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#FloatExp.asFloat" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2872">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="CharExp" href="./htmlsrc/minid.ast.html#L2881" kind="class" beg="2881" end="2915">CharExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#CharExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2881">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a character literal.</div>
<dl>
<dt class="decl">dchar <a class="symbol _variable" name="CharExp.value" href="./htmlsrc/minid.ast.html#L2886" kind="variable" beg="2886" end="2886">value</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CharExp.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2886">#</a></dt>
<dd class="ddef">
<div class="summary">The actual character of the literal.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="CharExp.this" href="./htmlsrc/minid.ast.html#L2890" kind="ctor" beg="2890" end="2894">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, dchar <em>value</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#CharExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2890">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="CharExp.isConstant" href="./htmlsrc/minid.ast.html#L2896" kind="function" beg="2896" end="2899">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CharExp.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2896">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="CharExp.isTrue" href="./htmlsrc/minid.ast.html#L2901" kind="function" beg="2901" end="2904">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CharExp.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2901">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="CharExp.isChar" href="./htmlsrc/minid.ast.html#L2906" kind="function" beg="2906" end="2909">isChar</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CharExp.isChar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2906">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">dchar <a class="symbol _function" name="CharExp.asChar" href="./htmlsrc/minid.ast.html#L2911" kind="function" beg="2911" end="2914">asChar</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#CharExp.asChar" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2911">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="StringExp" href="./htmlsrc/minid.ast.html#L2920" kind="class" beg="2920" end="2954">StringExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#StringExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2920">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a string literal.</div>
<dl>
<dt class="decl">char[] <a class="symbol _variable" name="StringExp.value" href="./htmlsrc/minid.ast.html#L2925" kind="variable" beg="2925" end="2925">value</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#StringExp.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2925">#</a></dt>
<dd class="ddef">
<div class="summary">The actual value of the literal.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="StringExp.this" href="./htmlsrc/minid.ast.html#L2929" kind="ctor" beg="2929" end="2933">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, char[] <em>value</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#StringExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2929">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="StringExp.isConstant" href="./htmlsrc/minid.ast.html#L2935" kind="function" beg="2935" end="2938">isConstant</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#StringExp.isConstant" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2935">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="StringExp.isTrue" href="./htmlsrc/minid.ast.html#L2940" kind="function" beg="2940" end="2943">isTrue</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#StringExp.isTrue" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2940">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="StringExp.isString" href="./htmlsrc/minid.ast.html#L2945" kind="function" beg="2945" end="2948">isString</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#StringExp.isString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2945">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">char[] <a class="symbol _function" name="StringExp.asString" href="./htmlsrc/minid.ast.html#L2950" kind="function" beg="2950" end="2953">asString</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>, <span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#StringExp.asString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2950">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="FuncLiteralExp" href="./htmlsrc/minid.ast.html#L2959" kind="class" beg="2959" end="2973">FuncLiteralExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#FuncLiteralExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2959">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a function literal.</div>
<dl>
<dt class="decl">FuncDef <a class="symbol _variable" name="FuncLiteralExp.def" href="./htmlsrc/minid.ast.html#L2964" kind="variable" beg="2964" end="2964">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncLiteralExp.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2964">#</a></dt>
<dd class="ddef">
<div class="summary">The actual "guts" of the function.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="FuncLiteralExp.this" href="./htmlsrc/minid.ast.html#L2968" kind="ctor" beg="2968" end="2972">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, FuncDef <em>def</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FuncLiteralExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2968">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ClassLiteralExp" href="./htmlsrc/minid.ast.html#L2978" kind="class" beg="2978" end="2992">ClassLiteralExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#ClassLiteralExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2978">#</a></dt>
<dd class="ddef">
<div class="summary">Represents a class literal.</div>
<dl>
<dt class="decl">ClassDef <a class="symbol _variable" name="ClassLiteralExp.def" href="./htmlsrc/minid.ast.html#L2983" kind="variable" beg="2983" end="2983">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassLiteralExp.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2983">#</a></dt>
<dd class="ddef">
<div class="summary">The actual "guts" of the class.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ClassLiteralExp.this" href="./htmlsrc/minid.ast.html#L2987" kind="ctor" beg="2987" end="2991">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, ClassDef <em>def</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ClassLiteralExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L2987">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ParenExp" href="./htmlsrc/minid.ast.html#L3000" kind="class" beg="3000" end="3014">ParenExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#ParenExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3000">#</a></dt>
<dd class="ddef">
<div class="summary">Represents an expression inside a pair of parentheses.  Besides controlling order-of-
operations, this expression will make a multiple-return-value expression return exactly
one result instead.  Thus 'vararg' can give 0 or more values but '(vararg)' gives
exactly one (null in the case that there are no varargs).</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="ParenExp.exp" href="./htmlsrc/minid.ast.html#L3005" kind="variable" beg="3005" end="3005">exp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ParenExp.exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3005">#</a></dt>
<dd class="ddef">
<div class="summary">The parenthesized expression.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ParenExp.this" href="./htmlsrc/minid.ast.html#L3009" kind="ctor" beg="3009" end="3013">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>exp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ParenExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3009">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="TableCtorExp" href="./htmlsrc/minid.ast.html#L3019" kind="class" beg="3019" end="3044">TableCtorExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#TableCtorExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3019">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a table literal.</div>
<dl>
<dt class="decl">struct <a class="symbol _struct" name="TableCtorExp.Field" href="./htmlsrc/minid.ast.html#L3021" kind="struct" beg="3021" end="3025">Field</a>; <a title="Permalink to this symbol" href="#TableCtorExp.Field" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3021">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="TableCtorExp.Field.key" href="./htmlsrc/minid.ast.html#L3023" kind="variable" beg="3023" end="3023">key</a>; <a title="Permalink to this symbol" href="#TableCtorExp.Field.key" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3023">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">Expression <a class="symbol _variable" name="TableCtorExp.Field.value" href="./htmlsrc/minid.ast.html#L3024" kind="variable" beg="3024" end="3024">value</a>; <a title="Permalink to this symbol" href="#TableCtorExp.Field.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3024">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">Field[] <a class="symbol _variable" name="TableCtorExp.fields" href="./htmlsrc/minid.ast.html#L3030" kind="variable" beg="3030" end="3030">fields</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TableCtorExp.fields" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3030">#</a></dt>
<dd class="ddef">
<div class="summary">An array of fields.  The first value in each element is the key; the second the value.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="TableCtorExp.this" href="./htmlsrc/minid.ast.html#L3034" kind="ctor" beg="3034" end="3038">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Field[] <em>fields</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TableCtorExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3034">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="TableCtorExp.cleanup" href="./htmlsrc/minid.ast.html#L3040" kind="function" beg="3040" end="3043">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#TableCtorExp.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3040">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ArrayCtorExp" href="./htmlsrc/minid.ast.html#L3049" kind="class" beg="3049" end="3070">ArrayCtorExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#ArrayCtorExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3049">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an array literal.</div>
<dl>
<dt class="decl">Expression[] <a class="symbol _variable" name="ArrayCtorExp.values" href="./htmlsrc/minid.ast.html#L3054" kind="variable" beg="3054" end="3054">values</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ArrayCtorExp.values" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3054">#</a></dt>
<dd class="ddef">
<div class="summary">The list of values.</div></dd>
<dt class="decl">uint <a class="symbol _variable" name="ArrayCtorExp.maxFields" href="./htmlsrc/minid.ast.html#L3056" kind="variable" beg="3056" end="3056">maxFields</a>; <span class="attrs">[<span class="prot">protected</span>, <span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#ArrayCtorExp.maxFields" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3056">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl"><a class="symbol _ctor" name="ArrayCtorExp.this" href="./htmlsrc/minid.ast.html#L3060" kind="ctor" beg="3060" end="3064">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression[] <em>values</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ArrayCtorExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3060">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ArrayCtorExp.cleanup" href="./htmlsrc/minid.ast.html#L3066" kind="function" beg="3066" end="3069">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ArrayCtorExp.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3066">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="NamespaceCtorExp" href="./htmlsrc/minid.ast.html#L3075" kind="class" beg="3075" end="3089">NamespaceCtorExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#NamespaceCtorExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3075">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a namespace literal.</div>
<dl>
<dt class="decl">NamespaceDef <a class="symbol _variable" name="NamespaceCtorExp.def" href="./htmlsrc/minid.ast.html#L3080" kind="variable" beg="3080" end="3080">def</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceCtorExp.def" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3080">#</a></dt>
<dd class="ddef">
<div class="summary">The actual "guts" of the namespace.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="NamespaceCtorExp.this" href="./htmlsrc/minid.ast.html#L3084" kind="ctor" beg="3084" end="3088">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, NamespaceDef <em>def</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NamespaceCtorExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3084">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="YieldExp" href="./htmlsrc/minid.ast.html#L3094" kind="class" beg="3094" end="3123">YieldExp</a> : PrimaryExp; <a title="Permalink to this symbol" href="#YieldExp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3094">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a yield expression, such as "yield(1, 2, 3)".</div>
<dl>
<dt class="decl">Expression[] <a class="symbol _variable" name="YieldExp.args" href="./htmlsrc/minid.ast.html#L3099" kind="variable" beg="3099" end="3099">args</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#YieldExp.args" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3099">#</a></dt>
<dd class="ddef">
<div class="summary">The arguments inside the yield expression.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="YieldExp.this" href="./htmlsrc/minid.ast.html#L3103" kind="ctor" beg="3103" end="3107">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression[] <em>args</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#YieldExp.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3103">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="YieldExp.hasSideEffects" href="./htmlsrc/minid.ast.html#L3109" kind="function" beg="3109" end="3112">hasSideEffects</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#YieldExp.hasSideEffects" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3109">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">bool <a class="symbol _function" name="YieldExp.isMultRet" href="./htmlsrc/minid.ast.html#L3114" kind="function" beg="3114" end="3117">isMultRet</a><span class="params">()</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#YieldExp.isMultRet" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3114">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">void <a class="symbol _function" name="YieldExp.cleanup" href="./htmlsrc/minid.ast.html#L3119" kind="function" beg="3119" end="3122">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#YieldExp.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3119">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ForComprehension" href="./htmlsrc/minid.ast.html#L3129" kind="class" beg="3129" end="3147">ForComprehension</a> : AstNode; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#ForComprehension" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3129">#</a></dt>
<dd class="ddef">
<div class="summary">This is the base class for both numeric and generic for comprehensions inside array
and table comprehensions.</div>
<dl>
<dt class="decl">IfComprehension <a class="symbol _variable" name="ForComprehension.ifComp" href="./htmlsrc/minid.ast.html#L3134" kind="variable" beg="3134" end="3134">ifComp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForComprehension.ifComp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3134">#</a></dt>
<dd class="ddef">
<div class="summary">Optional if comprehension that follows this.  This member may be null.</div></dd>
<dt class="decl">ForComprehension <a class="symbol _variable" name="ForComprehension.forComp" href="./htmlsrc/minid.ast.html#L3139" kind="variable" beg="3139" end="3139">forComp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForComprehension.forComp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3139">#</a></dt>
<dd class="ddef">
<div class="summary">Optional for comprehension that follows this.  This member may be null.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ForComprehension.this" href="./htmlsrc/minid.ast.html#L3143" kind="ctor" beg="3143" end="3146">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, AstTag <em>tag</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForComprehension.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3143">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ForeachComprehension" href="./htmlsrc/minid.ast.html#L3153" kind="class" beg="3153" end="3190">ForeachComprehension</a> : ForComprehension; <a title="Permalink to this symbol" href="#ForeachComprehension" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3153">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a foreach comprehension in an array or table comprehension, i.e.
in the code "[x for x in a]", it represents "for x in a".</div>
<dl>
<dt class="decl">Identifier[] <a class="symbol _variable" name="ForeachComprehension.indices" href="./htmlsrc/minid.ast.html#L3158" kind="variable" beg="3158" end="3158">indices</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachComprehension.indices" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3158">#</a></dt>
<dt class="decl">Expression[] <a class="symbol _variable" name="ForeachComprehension.container" href="./htmlsrc/minid.ast.html#L3161" kind="variable" beg="3161" end="3161">container</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachComprehension.container" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3161">#</a></dt>
<dd class="ddef">
<div class="summary">These members are the same as for a ForeachStmt.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ForeachComprehension.this" href="./htmlsrc/minid.ast.html#L3165" kind="ctor" beg="3165" end="3183">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Identifier[] <em>indices</em>, Expression[] <em>container</em>, IfComprehension <em>ifComp</em>, ForComprehension <em>forComp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForeachComprehension.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3165">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">void <a class="symbol _function" name="ForeachComprehension.cleanup" href="./htmlsrc/minid.ast.html#L3185" kind="function" beg="3185" end="3189">cleanup</a><span class="params">(ref Allocator <em>alloc</em>)</span>; <span class="attrs">[<span class="stc">override</span>]</span> <a title="Permalink to this symbol" href="#ForeachComprehension.cleanup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3185">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ForNumComprehension" href="./htmlsrc/minid.ast.html#L3196" kind="class" beg="3196" end="3238">ForNumComprehension</a> : ForComprehension; <a title="Permalink to this symbol" href="#ForNumComprehension" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3196">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a numeric for comprehension in an array or table comprehension, i.e.
in the code "[x for x in 0 .. 10]" this represents "for x in 0 .. 10".</div>
<dl>
<dt class="decl">Identifier <a class="symbol _variable" name="ForNumComprehension.index" href="./htmlsrc/minid.ast.html#L3201" kind="variable" beg="3201" end="3201">index</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumComprehension.index" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3201">#</a></dt>
<dt class="decl">Expression <a class="symbol _variable" name="ForNumComprehension.lo" href="./htmlsrc/minid.ast.html#L3204" kind="variable" beg="3204" end="3204">lo</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumComprehension.lo" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3204">#</a></dt>
<dt class="decl">Expression <a class="symbol _variable" name="ForNumComprehension.hi" href="./htmlsrc/minid.ast.html#L3207" kind="variable" beg="3207" end="3207">hi</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumComprehension.hi" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3207">#</a></dt>
<dt class="decl">Expression <a class="symbol _variable" name="ForNumComprehension.step" href="./htmlsrc/minid.ast.html#L3210" kind="variable" beg="3210" end="3210">step</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumComprehension.step" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3210">#</a></dt>
<dd class="ddef">
<div class="summary">These members are the same as for a ForNumStmt.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ForNumComprehension.this" href="./htmlsrc/minid.ast.html#L3214" kind="ctor" beg="3214" end="3237">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Identifier <em>index</em>, Expression <em>lo</em>, Expression <em>hi</em>, Expression <em>step</em>, IfComprehension <em>ifComp</em>, ForComprehension <em>forComp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ForNumComprehension.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3214">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="IfComprehension" href="./htmlsrc/minid.ast.html#L3244" kind="class" beg="3244" end="3258">IfComprehension</a> : AstNode; <a title="Permalink to this symbol" href="#IfComprehension" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3244">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an if comprehension an an array or table comprehension, i.e.
in the code "[x for x in a if x &lt; 10]", this represents "if x &lt; 10".</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="IfComprehension.condition" href="./htmlsrc/minid.ast.html#L3249" kind="variable" beg="3249" end="3249">condition</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfComprehension.condition" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3249">#</a></dt>
<dd class="ddef">
<div class="summary">The condition to test.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="IfComprehension.this" href="./htmlsrc/minid.ast.html#L3253" kind="ctor" beg="3253" end="3257">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, Expression <em>condition</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#IfComprehension.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3253">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="ArrayComprehension" href="./htmlsrc/minid.ast.html#L3263" kind="class" beg="3263" end="3285">ArrayComprehension</a> : PrimaryExp; <a title="Permalink to this symbol" href="#ArrayComprehension" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3263">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents an array comprehension, such as "[x for x in a]".</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="ArrayComprehension.exp" href="./htmlsrc/minid.ast.html#L3269" kind="variable" beg="3269" end="3269">exp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ArrayComprehension.exp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3269">#</a></dt>
<dd class="ddef">
<div class="summary">The expression which is executed as the innermost thing in the loop and whose values
	are used to construct the array.</div></dd>
<dt class="decl">ForComprehension <a class="symbol _variable" name="ArrayComprehension.forComp" href="./htmlsrc/minid.ast.html#L3274" kind="variable" beg="3274" end="3274">forComp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ArrayComprehension.forComp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3274">#</a></dt>
<dd class="ddef">
<div class="summary">The root of the comprehension tree.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="ArrayComprehension.this" href="./htmlsrc/minid.ast.html#L3278" kind="ctor" beg="3278" end="3284">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>exp</em>, ForComprehension <em>forComp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#ArrayComprehension.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3278">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="TableComprehension" href="./htmlsrc/minid.ast.html#L3290" kind="class" beg="3290" end="3317">TableComprehension</a> : PrimaryExp; <a title="Permalink to this symbol" href="#TableComprehension" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3290">#</a></dt>
<dd class="ddef">
<div class="summary">This node represents a table comprehension, such as "{[v] = k for k, v in a}".</div>
<dl>
<dt class="decl">Expression <a class="symbol _variable" name="TableComprehension.key" href="./htmlsrc/minid.ast.html#L3295" kind="variable" beg="3295" end="3295">key</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TableComprehension.key" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3295">#</a></dt>
<dd class="ddef">
<div class="summary">The key expression.  This is the thing in the brackets at the beginning.</div></dd>
<dt class="decl">Expression <a class="symbol _variable" name="TableComprehension.value" href="./htmlsrc/minid.ast.html#L3300" kind="variable" beg="3300" end="3300">value</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TableComprehension.value" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3300">#</a></dt>
<dd class="ddef">
<div class="summary">The value expression.  This is the thing after the equals sign at the beginning.</div></dd>
<dt class="decl">ForComprehension <a class="symbol _variable" name="TableComprehension.forComp" href="./htmlsrc/minid.ast.html#L3305" kind="variable" beg="3305" end="3305">forComp</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TableComprehension.forComp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3305">#</a></dt>
<dd class="ddef">
<div class="summary">The root of the comprehension tree.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="TableComprehension.this" href="./htmlsrc/minid.ast.html#L3309" kind="ctor" beg="3309" end="3316">this</a><span class="params">(ICompiler <em>c</em>, CompileLoc <em>location</em>, CompileLoc <em>endLocation</em>, Expression <em>key</em>, Expression <em>value</em>, ForComprehension <em>forComp</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#TableComprehension.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.ast.html#L3309">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd></dl></dd></dl>
</div>
<div id="footer">
  <p></p>
  <p>Page generated by <a href="http://code.google.com/p/dil">dil</a> on Fri Dec 26 03:29:17 2008. Rendered by <a href="http://code.google.com/p/dil/wiki/Kandil">kandil</a>.</p>
</div>
</body>
</html>